数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
SQL Server中使用外部命令执行sql脚本

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

Author:David Euler
Date: 2004/09/28
Email:[email protected]

有任何问题,请与我联系:)

   有时候我们需要多次运行一个文件夹下所有的sql脚本(可能时txt或者sql等文本文件)来更新Schema,文件多的时候需要多次执行,那么可以使用多条语句来执行sql脚本。
--下面的查询语句在SQL Query中运行,将执行d:\vss下面的指定sql脚本,这些脚本的后缀都是txt
exec master..xp_cmdshell 'isql  -U  sa  -P  123  -i  d:\vss\MSSchema.txt '
exec master..xp_cmdshell 'isql  -U  sa  -P  123  -i  d:\vss\MSSchema_030311.txt '
exec master..xp_cmdshell 'isql  -U  sa  -P  123  -i  d:\vss\MSSchema_030416.txt'
exec master..xp_cmdshell 'isql  -U  sa  -P  123  -i  d:\vss\MSSchema_030417.txt'
exec master..xp_cmdshell 'isql  -U  sa  -P  123  -i  d:\vss\MSSchema_030513.txt'
exec master..xp_cmdshell 'isql  -U  sa  -P  123  -i  d:\vss\MSSchema_030613.txt'
exec master..xp_cmdshell 'isql  -U  sa  -P  123  -i  d:\vss\MSSchema_031010.txt'
exec master..xp_cmdshell 'isql  -U  sa  -P  123  -i  d:\vss\MSSchema_050810.txt'
 
exec master..xp_cmdshell 'isql  -U  sa  -P  123  -i  d:\vss\TaxInvoice.sql'
 
当然,我们完全可以不使用存储过程,而只是在一个批处理文件updateschema.cmd中执行这些命令,下面是updateschema.cmd的内容:
;下面的命令将执行d:\vss下面的指定sql脚本:
isql  -U  sa  -P  123  -i  d:\vss\MSSchema.txt 
isql  -U  sa  -P  123  -i  d:\vss\MSSchema_030311.txt
isql  -U  sa  -P  123  -i  d:\vss\MSSchema_030416.txt
isql  -U  sa  -P  123  -i  d:\vss\MSSchema_030417.txt
isql  -U  sa  -P  123  -i  d:\vss\MSSchema_030513.txt
isql  -U  sa  -P  123  -i  d:\vss\MSSchema_030613.txt
isql  -U  sa  -P  123  -i  d:\vss\MSSchema_031010.txt
isql  -U  sa  -P  123  -i  d:\vss\MSSchema_050810.txt
 
注:
1.exec语句用来执行存储过程,xp_cmdshell是master数据库中的一个扩展存储过程,可以用来执行系统命令的字符串
  比如exec master..xp_cmdshell 'dir *.exe'查看当前目录下所有的exe文件。 
 
2.isql是sql server的一个实用工具,可以理解程一个外部程序,如果sql使用的默认安装,可以在C:\Program Files\Microsoft SQL Server\80\Tools\Binn目录中找到这个isql.exe文件,isql可以用来执行Transact-SQL语句,存储过程,以及脚本文件,
参数-U用来指定登陆服务器的用户名,-P用来指定密码,
参数-i用来指定读取执行的脚本文件,
参数-o用来指定保存输出结果的文件名。
 
3.其他Oracle,DB2,MySQL,PostgreSQL等几个常用数据库中也有相应的工具也可以实现类似的功能。



相关文章

相关软件