你好,请问你有sqlsever2005下载0英文版吗?

您所在的位置:
&Microsoft SQL Server 2012(sql2012下载)官方简体中文版
Microsoft SQL Server 2012(sql2012下载)官方简体中文版
SQL Server 2012软件介绍
点击查看大图
Microsoft SQL Server 2012(sql2012官方中文版下载)提供了一个云计算信息平台,该平台可帮助企业对整个组织有突破性的深入了解,并且能够快速在内部和公共云端重部署方案和扩展数据。Microsoft SQL Server 2012 主要服务:― 通过 AlwaysOn 提供所需运行时间和数据保护;― 通过列存储索引获得突破性和可预测的性能;― 通过用于组的新用户定义角色和默认架构,帮助实现安全性和遵从性;― 通过列存储索引实现快速数据恢复,以便更深入地了解组织;― 通过SSIS改进、用于Excel的 Master Data Services外接程序和新Data Quality Services,确保更加可靠、一致的数据;― 通过使用 SQL Azure 和 SQL Server 数据工具的数据层应用程序组件 (DAC) 奇偶校验,优化服务器和云间的IT和开发人员工作效率,从而在数据库、BI和云功能间实现统一的开发体验。看看 SQL Server 2012 新版给我们带来了什么激动人心的功能吧:1. AlwaysOn - 这个功能将数据库的镜像提到了一个新的高度。用户可以针对一组数据库做灾难恢复而不是一个单独的数据库。2. Windows Server Core 支持 - Windows Server COre 是命令行界面的 Windows,使用 DOS 和 PowerShell 来做用户交互。它的资源占用更少,更安全,支持 SQL Server 2012。3. Columnstore 索引 - 这是 SQL Server 独有的功能。它们是为数据仓库查询设计的只读索引。数据被组织成扁平化的压缩形式存储,极大的减少了 I/O 和内存使用。4. 自定义服务器权限 - DBA 可以创建数据库的权限,但不能创建服务器的权限。比如说,DBA想要一个开发组拥有某台服务器上所有数据库的读写权限,他必须手动的完成这个操作。但是 SQL Server 2012 支持针对服务器的权限设置。5. 增强的审计功能 - 现在所有的 SQL Server 版本都支持审计。用户可以自定义审计规则,记录一些自定义的时间和日志。6. BI 语义模型 - 这个功能是用来替代“Analysis Services Unified Dimentional Model”的。这是一种支持 SQL Server 所有 BI 体验的混合数据模型。7. Sequence Objects - 用 Oracle 的人一直想要这个功能。一个序列(sequence)就是根据触发器的自增值。SQL Serve 有一个类似的功能,identity columns,但是现在用对象实现了。8. SQL Server 2012增强的 PowerShell 支持 - 所有的 Windows 和 SQL Server 管理员都应该认真的学习 PowderShell 的技能。微软正在大力开发服务器端产品对 PowerShell 的支持。9. 分布式回放(Distributed Replay) - 这个功能类似 Oracle 的 Real Application Testing 功能。不同的是 SQL Server 企业版自带了这个功能,而用 Oracle 的话,你还得额外购买这个功能。这个功能可以让你记录生产环境的工作状况,然后在另外一个环境重现这些工作状况。10. PowerView - 这是一个强大的自主 BI 工具,可以让用户创建 BI 报告。11. SQL Azure 增强 -& 这和 SQL Server 2012 没有直接关系,但是微软确实对 SQL Azure 做了一个关键改进,例如 Reporint Service,备份到 Windows Azure 。Azure 数据库的上限提高到了150G。12. 大数据支持 - 这是最重要的一点,虽然放在了最后。去年的 PASS(Professional Association for SQL Server)会议,微软宣布了与 Hadoop 的提供商 Cloudera 的合作。一是提供 Linux 版本的 SQL Server ODBC 驱动。主要的合作内容是微软开发 Hadoop 的连接器,也就是 SQL Server 也跨入了 NoSQL 领域。Microsoft SQL Server 2012 安装系统要求:― 支持的操作系统:Windows 7、Windows Server 2008 R2、Windows Server 2008 SP2、Windows Vista SP2― 32位系统:具有Intel 1GHz(或同等性能的兼容处理器)或速度更快的处理器(建议使用2GHz或速度更快的处理器)的计算机― 64位系统:1.4 GHz或速度更快的处理器― 最低1GB RAM(建议使用2GB或更大的RAM)― 2.2 GB可用硬盘空间&&SQL2012安装文件较大,建议使用等下载工具进行下载。本安装包含32和64位安装程序,如需要单独分别下载,请访问微软官方下载页面:&
下载吧温馨提示:
SQL Server 2012试用180天,如需要请购买注册!
SQL Server 2012下载地址
其他软件小分类
308710次下载
31192次下载
31793次下载
37743次下载
36535次下载
65769次下载
180820次下载
66655次下载
350276次下载
17893次下载
1077235次下载
924855次下载
909658次下载
539377次下载
488013次下载
481510次下载
350276次下载
308710次下载
291492次下载
262303次下载
热门关键字
微信扫一扫关注下载吧公共帐号5994人阅读
在使用SQL Server&的过程中,用户遇到的最多的莫过于连接问题了。本文将深度讨论SQL Server&连接问题的方方面面,希望能帮你彻底解决SQL server&的连接问题。
SQL Server&支持的通讯协议很多,如命名管道(Named Pipes)、TCP/IP&套接字、共享内存(Shared Memory)等。由于最常用的是前两种即命名管道和TCP/IP套接字,所以我们主要讨论这两种协议的连接问题。先来讨论命名管道,然后我们再讨论TCP/IP。
二。什么是命名管道(Named Pipes)
在Windows&系统中,进程间通信机制有邮槽,管道和套接字等. Windows平台上就管道而言,有命名管道和匿名管道两种。命名管道通过进程间通讯(IPC)机制实现通讯,&利用它能够在同一台计算机的不同进程之间,或在跨越一个网络的不同计算机的进程之间,进行单向或双向的数据通信。具体点说,&命名管道建立在服务器的IPC$共享基础上,通过IPC$共享来进行通讯。管道的名称也是和网络共享类似,都是UNC格式(见后面讨论的命名管道命名格式)。
如果你曾使用命名管道进行编程,你就会发现命令管道利用标准的Win32文件系统API&函数(如ReadFile和WriteFile)来进行数据的收发,与系统基层网络传送协议(如TCP,NETBEUI或IPX等)无关.&客户端使用命名管道连接的基本过程如下:
(1)SQL Server服务器使用CreateNamedPipe函数创建命名管道并对之进行监听.
(2)客户端使用CreateFile()和WriteFile()函数试图连接到服务器的命名管道.
1)&命名管道不是一个基层网络协议
由于命名管道运行在TCP,NETBEUI等基础协议之上,不是一个基层网络传送协议,&所以即使客户机和SQL Server&服务器之间使用命名管道通讯,&你亦需要配置TCP或其它基层网络协议以保证客户机和SQL服务器之间的网络连通性.
2)&命名管道是一个需要通过系统认证的协议
当客户端使用命名管道协议连接的时候,&它会首先访问服务器的IPC$共享。访问IPC$共享必须通过Windows&的认证。通过了这个认证后,才可以真正连接到SQL Server&监听的管道上。所以说命名管道是一个需要通过Windows认证的协议.&这是使用命名管道的最大一项好处,即用它可以直接利用Windows Server内置的安全机制.&如果你没有访问SQL Server&服务器的文件系统的权限(Permission),那么你就无法使用命名管道访问SQL
三。SQL Sever&命名管道工作原理
SQL Server&首先在服务器上创建一个命名管道并监听之,然后客户端即可连接到这个管道上来进行对话。对每一个客户端管道连接请求SQL Server都会创建一个新的管道实例来与之进行通讯。
1.&命名管道的名称。
SQL Server和其它Windows程序一样都采用UNC格式标识命名管道。例如:
\\server\Pipe\path_name
上述命名管道标识字符串可分为三部分
\\server部分: 指定命名管道所在服务器的名字。命名管道便是在此机器上创建。SQL Server&多是用一个点(.)来表示它正在运行的本地服务器。
\Pipe部分:是一个固定的“硬编码”字串(大小写均可)表明是管道协议。
\path_name部分:命名管道的名字。可以是多级目录。SQL Server&监听的是两级目录即\sql\query。
缺省情况下,SQL Server监听的命名管道名称如下:
(默认实例和命名实例有不同的管道名字)
默认实例:\\.\pipe\sql\query
命名实例:\\.\pipe\MSSQL$instancename\sql\query
上述管道名称pipe后面的部分可以在安装&SQL Server&后使用服务器网络实用工具进行更改。
2.&配置或查看SQL Server 2000&监听的命名管道
在SQL Server 2000&服务器上运行svrnetcn.exe调出服务器网络实用工具(英文名是SQL Server Network Utility),或者在&开始&菜单中,指向&程序&,接着指向&Microsoft SQL Server&,然后单击&服务器网络实用工具&。如果&启用的协议(Enabled Protocals)&框内没有命名管道则从左边选中命名管道并点击启用(Enabled)按钮加入(参考图1)。选中命名管道协议并点击属性按钮(Properties)即可查看或修改SQL
Server&监听的命名管道名称(参考图2)。如果刚刚启用命名管道协议那么需要点击OK按钮并重新启动SQL Server&服务才能生效。
(图1:服务器网络实用工具)
(图2:命名管道名称)
3.&配置或查看SQL Server 2005/SQL Server 2008&监听的命名管道
打开SQL Server Configuration Manager,在左侧的面板中展开SQL Server Network Configuration节点,并选中节点下面你想要操作的SQL Server实例。此时在右侧的面板上会看到该实例的各个网络协议是否启用,其中包括命名管道。在协议名字的右侧会显示它当前的状态是否为启用。参考图3。
(图3 SQL Server Configuration Manager)
右键Named Pipes并选择“启用”。然后重启SQL Server实例来使得刚才做的操作生效。
在图3中,选中命名管道协议并点击属性按钮(Properties)即可查看或修改SQL Server&监听的命名管道名称。
4.&验证SQL Server&是否真的监听了命名管道
解决命名管道连接问题的重要一步是检查SQL Server是否真的监听了命名管道。
在SQL Server 2000中,为了验证SQL Server&确实监听了命名管道,可以打开SQL Server Query Analyzer&(查询分析器),然后运行如下命令:
exec master..xp_readerrorlog
在结果栏,如果看到如下一行则表明SQL Server已经监听了命名管道:
09:57:37.38 server SQL server listening on TCP, Shared Memory, Named Pipes.&&&&
在SQL Server 2005或SQL Server 2008中,我们可以打开SQL Server Management Studio,然后运行:
exec master..xp_readerrorlog
你可以在结果栏中看到它监听的管道名称:
11:35:37.980 Server&&&&&&&Server named pipe provider is ready to accept connection on [ \\.\pipe\sql\query ].
四。客户端的命名管道配置
大多数情况下在客户端你不需要进行配置,因为命名管道协议默认是启用的。但既然是检查命名管道的连接问题,还是需要熟悉客户端的命名管道配置。
1.&使用客户端网络实用工具
在客户端可以使用客户端网络实用工具配置连接到SQL Server&使用的协议。运行cliconfg.exe或从开始--&程序--&Microsoft SQL Server --&客户端网络实用工具调出该工具(参考图5)
(图5:使用客户端网络实用工具)
客户端网络实用工具中左边是禁用的协议,右边的是启用的协议。如果右边没有命名管道协议,则点击Enable按钮启用它。右边列表上的协议上下顺序决定在连接&SQL Server&实例时客户端超级套接字&Net-Library&(Dbnetlib.dll)考虑使用的客户端协议的优先顺序。你可以改变它。
选中命名管道点击属性(Properties)按钮即可查看客户端连接的缺省的命名管道名称。
缺省情况下是sql\query(参考图6)。需要注意的是该名称是不完整的,连接的时候客户端超级套接字网络库会自动补充完整成\\RemoteComputerName\pipe\sql\query&格式。
如果命名管道连接出现问题, 必须保证SQL Server&监听的命名管道名称和客户端连接的缺省管道名称是一致的。
(图6:客户端连接的缺省命名管道名称)
2.使用SQL Server Configuration Manager
我们也可以过SQL Server Configuration Manager为SQL Server Native Client这个数据库驱动配置客户端网络协议。
我们打开SQL Server Configuration Manager,在左侧的面板中展开SQL Native Client&&Configuration(或者SQL Native Client 10.0 Configuration)节点,并选中节点下面的Client Protocols。此时在右侧面板你会看到所有支持的客户端协议。我们可以通过右键来启动和禁用命名管道协议。可以右键选择属性来编辑客户端的默认管道。见图7。
3.善用客户端SQL Server别名
可以在客户端配置SQL Server别名,以明确指定连接到SQL Server所使用的协议。在某些情况下,&SQL Server&监听的命名管道或IP地址、端口等可能并不是缺省的那样而是出于某种目的已被改变。在这种情况下就可以使用客户端SQL Server别名来解决连接问题。使用客户端网络实用工具可以方便的创建、删除或修改SQL Server别名(参考下面二图):
注意上图中的pipe name必须和服务器上监听的命名管道名称匹配,Server Name里填上的的字符串必须是正确的SQL Server服务器名字。而Server Alias里填的是任意的合法的名字字符串,不一定非得和SQL Server服务器名相同。
SQL Server Configuration Manager里面的配置步骤和上面的类似。(图9)
五。 命名管道连接问题的解决步骤
好了,介绍到这里你应该对命名管道很不陌生了,也应该是时候讨论命名管道连接问题的解决步骤了:
步骤1:使用服务器端网络实用工具检查命名管道配置并确认SQL Server已经监听了命名管道协议。
步骤2:使用客户端网络实用工具检查客户端的连接协议配置,确保启用了命名管道。当然,客户端连接的缺省管道名称需要和SQL服务器监听的一致。另外,需要仔细查看是不是存在错误的SQL Server&别名。
步骤3:检查网络连通性。例如要确保不但能够ping通&SQL Server服务器的IP地址,也
能够ping&通SQL Server服务器的名称。
步骤4:检查客户端是否能够通过SQL Server&服务器的Windows认证。可以使用如下命令进行:
如果这两条命令出错,则表明有访问SQL Server服务器权限上的问题。需要扫除了这些问题之后再去解决命名管道连接的问题。
步骤&5:确保客户端登录(login)帐号有权限访问SQL Server。为了简化问题,排除Windows认证问题的干扰,在作这一类问题分析时,如果SQL Server配置了SQL Authentication,建议还是使用一个SQL Server帐号。等SQL Server帐号能连通以后,再使用Windows帐号。
如果上述五个步骤还不能解决命名管道的连接问题,那么你可以使用下面介绍的实用工具来测试命名管道。
六。测试命名管道连接的实用工具
SQL Server安装盘带有测试网络命名管道服务完整性的实用工具makepipe和readpipe。 这两个小工具需要一起使用。可在SQL Server 2000&光盘上的&x:\x86\Binn&目录下找到该实用工具。使用方法如下:
1)在服务器的操作系统命令提示符处键入:
Makepipe /pmytestpipe
注意/p和后面的pipename不能有空格
这将创建命名管道&。
运行该命令后返回信息如下:
Making PIPE:\\.\pipe\mytestpipe
read to write delay (seconds):0
Waiting for Client to Connect...
Waiting for client to send...&&1
Data Read:
Hello world
(参考图10)
(图10:使用makepipe实用工具)
2)在客户端工作站的操作系统命令提示符处键入:
readpipe /Smyserver&/D“Hello world”&/pmytestpipe
其中“Hello world”是测试字符串。如果字符串包含空格,则必须括在双引号内。/S&与服务器名称之间无空格,/D&与字符串之间无空格&/p与pipename之间不能有空格
如果命名管道连接可以建立,则客户端工作站分别返回以下信息:
SvrName:\\myserver
PIPE&&&:\\myserver\pipe\mytestpipe
DATA&&&:Hello world
Data Sent: 1 :Hello world
Data Read: 1 :Hello world
(参考图11)
(图11:使用readpipe实用工具)
如果readpipe和makepipe工具无法连通,说明网络命名管道服务不可用。这时候就需要先检查网络连通性问题或访问Windows的权限问题。
七.&一些常见的连接问题
连接问题一:
[Named Pipes]SQL Server does not exist or access denied.
[Named Pipes]ConnectionOpen (Connect()).
这个连接错误多是因为客户端没有找到命名管道服务器(也就是SQL Server)造成的。
解决方法:
1)检查网络连通性,如ping等,确认SQL Server已经启动。
2)检查SQL server&服务器端和客户端的命名管道配置。
连接问题二:
Login failed for user&‘NULL’或Login failed for user anonymous
这个错误基本上意味着网络连通性没有问题, 只是使用命名管道访问服务器有权限上的问题。不要忘记那个IPC$共享哦。没有权限访问IPC$就无法使用命名管道。可以运行“net use&”命令测试一下。
大多数情况下这个错误是因为你使用了权限不足的账号登录客户端机器,而你又使用Windows authentication&访问SQL Server&引起。比方说你使用客户端机器的本地帐号登录,同时使用了windows authentication方式访问SQL Server。 由于客户端本地帐号没有权限访问服务器的资源,必然会导致访问失败。 解决方法就是使用域的帐号重新登录客户端机器,同时确保该域帐号已经加入到SQL Server&的login里面。还有另外一个方法就是使用SQL
Server&帐号而不是windows帐号尝试连接SQL Server,并且使用TCP/IP&协议。不要忘了,即使使用SQL帐号,如果协议是命名管道,也是需要Windows&认证的。
连接问题三:
Login failed for user 'User123'.
这类问题多是User123没有权限访问服务器的资源,或没有权限访问SQL Server。应该不是一个连接问题而是一个SQL Server访问权限(即SQL Server的身份验证)问题了&J
八.&友情贴士(Tips)
1.连接建立后,如何查看使用的协议呢?可以在SQL Server 2000的Query Analyzer或者SQL Server 得Management Studio中运行如下语句:
Select Net_library, hostname, program_name, nt_domain, nt_username,&&loginame from
master..sysprocesses where spid&50
其中的net_library字段说明该连接使用的协议。注意如果你看到协议是LPC,那么它代表是使用shared memory&连接的。
2.当使用来自&SQL Server 7.0&或其早期版本的&SQL Server&客户端连接组件时,在连接到&SQL Server 2000&的命名实例之前,必须使用客户端网络实用工具设置别名.另一个方法是安装MDAC 2.6或以后更高的MDAC版本.只有MDAC2.6或更高版本才有能力不用客户端别名连接到SQL Server 2000的命名实例.
3.除了使用SQL Server查询分析器(Query Analyzer)测试SQL Server&的连接问题外,&另一个更好的测试工具是ODBC数据库源.&运行ODBCAD32.exe即可调出该工具.使用该工具可以尝试建立连接到SQL server&的系统DSN.&为什么说ODBCAD32.exe工具比较好呢?因为它输出的信息比Query Analyzer的要详细.
比方说连接到不存在的服务器, Query Analyzer中输出的信息是:
而如果ODBC数据源建立ODBC DSN来测试,&输出的信息是:
这个信息不但指出了连接使用的协议,而且显示了一个重要的错误号码如上图的53.
如果使用&NET Helpmsg&查看错误号53,你会发现:
Net helpmsg 53
The network path was not found.
既然是network path not found,&很明显是网络的连通性问题了.
4.&命名管道也可以说是基于命名文件系统&NPFS(Named Pipe File System)来实现的,相关的驱动程序有npfs.sys等.有兴趣的读者可自行研究.
5.最后贴一个从SQL Server&联机手册里面的一张通讯组件图,希望对理解SQL Server&的连接问题有帮助:
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:636169次
积分:9009
积分:9009
排名:第800名
原创:86篇
转载:37篇
译文:95篇
评论:376条
文章:30篇
阅读:29757
文章:82篇
阅读:362319
(1)(1)(10)(10)(10)(4)(6)(4)(2)(1)(4)(10)(12)(16)(4)(6)(9)(1)(5)(5)(13)(9)(32)(42)(1)请问各位大下:MS-SQLSERVER2000(中文版)中能否使用MS-SQLSERVER7.0(英文版)中的完全数据库备份而生成的文件完成数据库的转移?
[问题点数:0分]
请问各位大下:MS-SQLSERVER2000(中文版)中能否使用MS-SQLSERVER7.0(英文版)中的完全数据库备份而生成的文件完成数据库的转移?
[问题点数:0分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2003年8月 软件工程/管理大版内专家分月排行榜第一2003年6月 软件工程/管理大版内专家分月排行榜第一2003年5月 软件工程/管理大版内专家分月排行榜第一2003年4月 软件工程/管理大版内专家分月排行榜第一
2003年10月 软件工程/管理大版内专家分月排行榜第二2003年9月 软件工程/管理大版内专家分月排行榜第二2003年7月 软件工程/管理大版内专家分月排行榜第二
2003年6月 MS-SQL Server大版内专家分月排行榜第二2003年5月 MS-SQL Server大版内专家分月排行榜第二
2003年4月 MS-SQL Server大版内专家分月排行榜第三2003年3月 MS-SQL Server大版内专家分月排行榜第三2003年2月 MS-SQL Server大版内专家分月排行榜第三
2003年6月 MS-SQL Server大版内专家分月排行榜第二2003年5月 MS-SQL Server大版内专家分月排行榜第二
2003年4月 MS-SQL Server大版内专家分月排行榜第三2003年3月 MS-SQL Server大版内专家分月排行榜第三2003年2月 MS-SQL Server大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。bat批处理 SQL2000数据库附加、分离、查询、备份、还原、删除小程序 - 做最不无聊的IT人 - ITeye技术网站
博客分类:
@Echo off::本程序在XP环境下对SQL2000
数据库测试通过
::SQL2005的见
Title SQL2000数据库 附加、分离、查询、备份、还原、删除 小程序
::▇AAA代表在SQL中看到的[要分离、附加的数据库名]
::▇BBB代表[要附加的数据库的位置]
CCC代表[要附加的数据库文件名]
DDD代表[要附加的数据库日志文件名]
::▇EEE代表[指定的数据库实例用户名]
FFF代表[指定的数据库实例用户的密码] (这里指定的实例是"127.0.0.1"或"Local"或"."即指本机SQL自带的实例)
::▇GGG代表[要备份的数据库名]
HHH代表[数据库备份的路径]
III代表[备份后的名字]
::▇JJJ代表[用于还原的数据库备份文件所在的路径+文件名]
KKK代表[还原后的数据库文件所存放的路径]
LLL代表[还原数据库后在SQL中所显示的名称]
::▇MMM代表[要删除的数据库名]
::#**********************************************************************#
::★1、【分离】请编辑AAA
set AAA=ForestFireControl_StandingBook
::----------------------------------------
::★2、【附加】请编辑AAA、BBB、CCC、DDD
set BBB=C:\
set CCC=ForestFireControl_StandingBook.mdf
set DDD=ForestFireControl_StandingBook_log.ldf
::----------------------------------------
::★设定数据库的登入【账号和密码】请编辑EEE、FFF
set EEE=sa
set FFF=sa
::----------------------------------------
::★4、【备份】请编辑GGG、HHH、III
set GGG=ForestFireControl_StandingBook
set HHH=C:\
set III=备份的数据库2.bak
::----------------------------------------
::★5、【还原】请编辑JJJ、KKK、LLL
set JJJ=C:\备份的数据库2.bak
set KKK=C:\
set LLL=ForestFireControl_StandingBook
::----------------------------------------
::★6、【删除】请编辑MMM
set MMM=ForestFireControl_StandingBook
::#**********************************************************************#
REM 选择菜单
Echo ★★★注意:本文件最好不要放在路径名中含有空格的位置上运行(如桌面等位置)
Echo #**********************************************************************#
选项如下(可用记事本打开对相应参数重新编辑)
Echo #**********************************************************************#
[1]分离%AAA%数据库
[2]附加%BBB%下的%CCC%数据库文件
[3]查看数据库中已存在的非系统表
[4]备份数据库%GGG%到%HHH%%III%
[5]还原"%JJJ%"数据库备份文件为%LLL%.mdf且存放到%KKK%下
[6]彻底删除数据库%MMM%
退出请按其他键
Echo #**********************************************************************#
Echo 选择后请按回车进行确认
set /P CHS=请选择: [1],[2],[3],[4],[6]?
if /I "%CHS%"=="1" goto 1111
if /I "%CHS%"=="2" goto 2222
if /I "%CHS%"=="3" goto 3333
if /I "%CHS%"=="4" goto 4444
if /I "%CHS%"=="5" goto 5555
if /I "%CHS%"=="6" goto 6666
::============================================================================
set XXX=C:\121.sql
Echo 正在清理与此数据库的连接,请等待……
::将下面的这三句语句写到.sql文件里面,再通过下面的第四条语句调用执行这个.sql文件的内容,第五条语句是删除这个.sql文件,第六条语句开始分离
&"%XXX%" Echo use
&&"%XXX%" Echo declare hcforeach cursor global for select 'kill
'+rtrim(spid) from sysprocesses where dbid=db_id(N'%AAA%')
&&"%XXX%" Echo exec
sp_msforeach_worker
Osql -U"%EEE%" -P"%FFF%" -i %XXX%
OSQL -E -Q "SP_DETACH_DB %AAA%"
::其他例子: osql -U"sa" -P"sa" -S"127.0.0.1" -Q "sp_detach_db '库名'"
Echo 分离SQL中名为%AAA%的数据库成功
goto dosmenu
::============================================================================
OSQL -U"%EEE%" -P"%FFF%" -S"127.0.0.1" -Q "sp_attach_db '%AAA%','%BBB%\%CCC%','%BBB%\%DDD%'"
Echo 附加%BBB%下的数据库文件%CCC%到SQL中成功
::★★★ OSQL -U"sa" -P"sa" -S"127.0.0.1" -Q "sp_attach_db '库名','路径\数据文件名','路径\日志文件名'"
goto dosmenu
::============================================================================
OSQL -E -Q "SELECT NAME,FILENAME FROM MASTER..SYSDATABASES WHERE
name&&'master' and name&&'tempdb' and name&&'model'
and name&&'msdb' "
::★★★上面语句中FROM后面的MASTER..SYSDATABASES表示系统自带的MASTER数据库中的SYSDATABASES表
goto dosmenu
::============================================================================
del %HHH%%III%
::加上述的del %HHH%%III%语句的作用是为了防止在路径%III%下已经存在同名的数据库备份文件,而导致文件叠加到一块,这也算是SQL2000的一个Bug
Echo 正在备份数据库,在出现成功的提示之前请您耐心等待……
OSQL -U"%EEE%" -P"%FFF%" -S"127.0.0.1" -d"%GGG%"
-Q "Backup DataBase %GGG% to disk = '%HHH%%III%'"
::★★★OSQL -U"sa" -P"sa" -S"127.0.0.1" -d"CircleImage" -Q "Backup DataBase CircleImage to disk = 'c:\111.db'"
Echo 恭喜!恭喜!已成功将SQL中的数据库"%GGG%"备份成%HHH%下文件名为"%III%"的文件
goto dosmenu
::============================================================================
Echo 数据库文件正在还原,在出现还原成功的提示前请您耐心等待……
set XXX=C:\123.sql
Echo DECLARE @bakFile nvarchar(1024);
&&"%XXX%" Echo SET @bakFile = N'%JJJ%';
&&"%XXX%" Echo.
&&"%XXX%" Echo DECLARE @restorePath nvarchar(1024);
&&"%XXX%" Echo SET @restorePath = N'%KKK%';
&&"%XXX%" Echo.
&&"%XXX%" Echo DECLARE @dbname nvarchar(128);
&&"%XXX%" Echo SET @dbname = N'%LLL%';
&&"%XXX%" Echo.
&&"%XXX%" Echo DECLARE @filename nvarchar(128);
&&"%XXX%" Echo SET @filename = @
&&"%XXX%" Echo.
&&"%XXX%" Echo CREATE TABLE #LogicalFileBak(LogicalName nvarchar(128),
&&"%XXX%" Echo
PhysicalName nvarchar(260),
&&"%XXX%" Echo
Type char(1),
&&"%XXX%" Echo
FileGroupName nvarchar(128),
&&"%XXX%" Echo
[Size] numeric(20,0),
&&"%XXX%" Echo
[MaxSize] numeric(20,0) );
&&"%XXX%" Echo.
&&"%XXX%" Echo
INSERT #LogicalFileBak EXEC('RESTORE FILELISTONLY FROM DISK = ''' + @bakFile + '''');
&&"%XXX%" Echo.
&&"%XXX%" Echo
DECLARE cur CURSOR FOR SELECT LogicalName,Type,FileGroupName FROM #LogicalFileB
&&"%XXX%" Echo
DECLARE @LogicalName nvarchar(128),@Type char(1),@FileGroupName nvarchar(128);
&&"%XXX%" Echo.
&&"%XXX%" Echo
DECLARE @cmd nvarchar(4000);
&&"%XXX%" Echo
SET @cmd = 'RESTORE DATABASE [' + @dbname + '] FROM DISK = ''' + @bakFile + '''';
&&"%XXX%" Echo
SET @cmd = @cmd + ' WITH REPLACE'
&&"%XXX%" Echo.
&&"%XXX%" Echo
&&"%XXX%" Echo
FETCH NEXT FROM cur INTO @LogicalName,@Type,@FileGroupN
&&"%XXX%" Echo
WHILE @@FETCH_STATUS = 0
&&"%XXX%" Echo
&&"%XXX%" Echo
SET @cmd = @cmd + ',MOVE ''' + @LogicalName + ''' TO ''' + @restorePath
&&"%XXX%" Echo
+ @filename + CASE WHEN @Type = 'D' AND @FileGroupName = 'PRIMARY'
&&"%XXX%" Echo
THEN '.mdf'
&&"%XXX%" Echo
WHEN @Type = 'D' AND @FileGroupName ^&^& 'PRIMARY'
&&"%XXX%" Echo
THEN '.ndf'
&&"%XXX%" Echo
ELSE '_log.ldf'
&&"%XXX%" Echo
END + ''''
&&"%XXX%" Echo
FETCH NEXT FROM cur INTO @LogicalName,@Type,@FileGroupN
&&"%XXX%" Echo
&&"%XXX%" Echo
&&"%XXX%" Echo
DEALLOCATE
&&"%XXX%" Echo.
&&"%XXX%" Echo
EXEC(@cmd);
&&"%XXX%" Echo.
&&"%XXX%" Echo
DROP TABLE #LogicalFileB
Osql -U"%EEE%" -P"%FFF%" -i %XXX%
Echo 恭喜!已成功将"%JJJ%"还原成%LLL%,且还原后的文件存放在%KKK%下
goto dosmenu
::============================================================================
Echo 真的要删除吗?删除后将不可恢复
set /P QR=确定删除请按y,放弃删除请按其他键,请选择?
if /I "%QR%"=="y" (
OSQL -U"%EEE%" -P"%FFF%" -S"127.0.0.1" -Q "Drop DataBase %MMM%"
::其他例子:OSQL -U"sa" -P"sa" -S"127.0.0.1" -Q "Drop DataBase 库名"
Echo 删除SQL中名为%AAA%的数据库及源文件成功
goto dosmenu
::============================================================================
::**************************************************************************************************
::**************************************************************************************************
::**************************************************************************************************
::分离数据库的命令:Sp_detach_db 数据库名
::  连接数据库的命令:Sp_attach_db或者sp_attach_single_file_db
::  sp_attach_db [@dbname =] 'dbname', [@filename1 =] 'filename_n' [,...16]
::  sp_attach_single_file_db [@dbname =] 'dbname', [@physname =] 'physical_name'
::使用此方法可以正确附加和分离SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时候一定要将mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是日志文件。
::OSQL -? 显示帮助(具体如下所示)
::用法: osql [-U 登录 ID] [-P 密码]
::[-S 服务器] [-H 主机名] [-E 可信连接]
::[-d 使用数据库名称] [-l 登录超时值] [-t 查询超时值]
::[-h 标题] [-s 列分隔符] [-w 列宽]
::[-a 数据包大小] [-e 回显输入] [-I 允许带引号的标识符]
::[-L 列出服务器] [-c 命令结束] [-D ODBC DSN 名称]
::[-q "命令行查询"] [-Q "命令行查询" 并退出]
::[-n 删除编号方式] [-m 错误级别]
::[-r 发送到 stderr 的消息] [-V 严重级别]
::[-i 输入文件] [-o 输出文件]
::[-p 打印统计信息] [-b 出错时中止批处理]
::★★★可通过下面的语句查询已有备份库的逻辑文件名,以用于 还原数据库语句操作 中的操作
::OSQL -U"sa" -P"sa" -S"127.0.0.1"
-Q "restore filelistonly from disk ='C:\备份的数据库1'"
::OSQL -U"sa" -P"sa" -S"127.0.0.1"
-Q "restore filelistonly from disk ='C:\备份的数据库1'" &&C:\1234.txt
::=============================================================================================
::★★★★★ 还原数据库语句操作
::其中的 数据库的逻辑文件名 和 数据库日志的逻辑文件名 是通过上述的语句来查询的
::格式说明:
::osql -E -d CircleImage -Q "restore database 备份后SQL中看到的数据库名 from
disk='用于还原的备份文件的路径+文件名' with move '数据库的逻辑文件名' TO '备份后的路径+实际文件名', MOVE
'数据库日志的逻辑文件名' TO '备份后的路径+实际文件名'"
::OSQL -U"sa" -P"sa" -S"127.0.0.1" -Q "restore database CircleImage from
disk='C:\CircleImage备份' with move 'CircleImage_Data' to
'c:\CircleImage.mdf',move ::'CircleImage_Log' to
'c:\CircleImage_log.ldf'"
::上述这么长的语句中切不可出现回车等换行符,且参数的大小写是不可随意更改的
::=============================================================================================
::★★ 更改数据库备份文件逻辑名的方法:
::alter database 数据库名 modify file (name=逻辑名,newname=新逻辑名)
::事实上,上面的语句是更改了sysfiles和sysfiles1系统表中的name字段。
浏览: 315106 次
来自: 安徽
jp.ne.so_net.ga2.no_ji.jcom.JCo ...
你好,请问你都做了哪些修改呢?是在客户端还是服务端?
翻译有误。
l ?:意思是操作符左边的符号( ...
请教一个问题,是不是HTTP请求里面没有包含上传文件在客户端的 ...
“认清” 我还以为google怎么你了

我要回帖

更多关于 sqlsever2008安装教程 的文章

 

随机推荐