SqlServer低版本数据库附加Sql高版本数据库或备份文件

时间:2024-04-17 09:53:21

       SqlServer低版本数据库不能直接还原或附加Sql高版本数据库或备份文件,我们常用DTS互导的方式,如果不同版本数据库不可访问,可以使用高版本数据库的DTS导出整个库的相应低版本建库脚本与数据,然后放在低版本数据库中去执行,常见如:我们库数据库一般是SqlServer2008+,有的客户使用的是2005版本的数据库,这时我们就提供了2005版本的建库脚本供用户自己在机器上执行,但由于文件过大(可以分成几个文件)会导致执行过程中内存不够的情形,对于此类种种情况我们可以使用命令行方式导入建表脚本与数据,Sql2005我们可以使用可以使用osql 语句来处理。

       osql语法为:

   osql -S 服务器 -U 用户名 -P 密码 -i SQL路径

      osql 是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件!

      如何使用 Osql?

      在开始->运行 中键入cmd,使用 "OSQL -?"命令,就可以显示osql命令行的帮助。 注意:osql 工具的选项列表是区分大小的,在使用时注意。

**1、使用osql执行单个 Transact-SQL 语句 **

在键入cmd与下面这一个类似的命令:

osql -E -q "Transact-SQL statement"

例如: sql -E -q "use myDB select * from myTable"

其中 -E 表示使用 Microsoft Windows NT 身份验证。

也可以使用sa账户,具体可以看看上面的命令!

而-q 表示运行 Transact-SQL 语句,但是在查询结束时不退出 osql。

如要运行 Transact-SQL 语句并退出 osql,请使用 -Q 参数来代替 -q。

**2、使用osql执行一个大脚本文件 **

将该工具指向一个脚本文件,步骤:

a.创建一个包含一批 Transact-SQL 语句的脚本文件(如 myfile.sql)。

b.打开命令提示符,键入与下面类似的一个命令,然后按 ENTER 键:

osql -E -i input_file

其中input_file 是脚本文件及其完整路径。例如,如果脚本文件 myfile.sql 在 C:\users文件夹中,

请将参数 myfile 替换为 C:\users\myfile.sql。

该脚本文件的运行结果将出现在控制台窗口中。

如果您想将运行结果定向到一个文件,请向上述命令中添加 -o output_file 参数。例如:

osql -E -i input_file -o output_file

其中output_file 是输出文件及其完整路径。

如果你觉得太麻烦了,可以使用批处理,将常用的一些命令写在bat文件中,需要的时候替换一些参数,点击文件执行即可,此时把需要执行的sql文件放在新建的一个批处理文件中,扩展名为.bat后运行即可。

如果是sql2008数据库,则可以使用sqlcmd 来执行大文件sql脚本。sqlcmd命令语法 为: sqlcmd -S . -U sa -P 123 -d test -i data.sql

参数说明:-S 服务器地址 -U 用户名 -P 密码 -d 数据库名称 -i 脚本文件路径

       本地服务器地址可以写 . 比较轻松,也可写(local)或者IP地址 要使用sqlcmd命令,需要在cmd命令行模式,把路径切换到:C:\Program Files\Microsoft SQL Server\100\Tools\Binn后执行。具体路径视自己sql安装目录。

以上只是一些参考,具体的方式会很多。