SqlServer低版本数据库附加Sql高版本数据库或备份文件
Posted 余赛格
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlServer低版本数据库附加Sql高版本数据库或备份文件相关的知识,希望对你有一定的参考价值。
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安装目录。
以上只是一些参考,具体的方式会很多。
以上是关于SqlServer低版本数据库附加Sql高版本数据库或备份文件的主要内容,如果未能解决你的问题,请参考以下文章