SQL Server 2000数据库有一个dos命令工具叫iSql,可以在dos命令下执行SQL操作,当我们在客户端或远程执行数据库操作等工作时是很方便的。本文我们主要介绍isql命令的使用,并通过两个示例来对isql的使用加以详细解释,接下来我们开始介绍这一部分内容。
isql命令的参数:
{-U login_id} --登录用户名
{-P password]} --登录密码
{-S server} --节点ip地址
{-d use database name] --操作的数据库
{-Q "query"} --要执行的sql命令
{-i input file} --要执行的sql文件
{-o output file} --结果输出文件
往往在大型系统维护中,由于存在很多个节点,比如全省有100多个县,每个县都有一套相同的系统(系统、数据库结构相同,但数据不同),这时候将会发现用好iSql命令将非常有用。尤其是在与dos其它命令组合时。
一、以下演示一个场景,需要向全省100个节点数据库,执行一段sql语句,可以是一条update、insert、也可以是一个存储过程、甚或是一批sql语句,这个时候如果一个个节点去远程连接再执行,人肯定会疯的。利用isql将变得很简单:
1.先创建一个文本文件config.txt,将各节点的数据库连接参数写下来,比如:
192.168.1.1,sa,sa,test
192.168.1.2,sa,sa,test
192.168.1.3,sa,sa,test
192.168.1.4,sa,sa,test
192.168.1.5,sa,sa,test
192.168.1.6,sa,sa,test 2.创建一个sql文件start.sql,存放您要执行的sql代码(内容略)
3.创建一个批处理,内容如下:
- @for /F "eol=# tokens=1,2,3* delims=, " %%i in (config.txt) do (
- @echo 向服务器%%i执行SQL语句
- @echo 向服务器%%i执行SQL语句 >> log.txt
- @isql -S%%i -U%%j -P%%k -d%%l -istart.sql >> log.txt
- @echo 执行结束
- pause
这段代码会逐行分析config.txt中的节点配置,然后分别执行sql文件start.sql,然后将结果输出到log.txt中。
二、还有一种情况,同样需要向100个节点执行相同的sql语句,不同的是需要返回数据,进行汇总或统计分析用。比如返回某张表中一共有多少条记录,那么,也可以建立一个批处理,如下:
- @for /F "eol=# tokens=1,2,3* delims=, " %%i in (config.txt) do (
- @echo 向服务器%%i执行SQL语句
- @echo 向服务器%%i执行SQL语句 >> log.txt
- @isql -S%%i -U%%j -P%%k -d%%l -Q"select count(*) from tablename" >> log.txt
- @echo 执行结束
- pause
然后您就可以等着看结果了。如果有错误,或者连不上数据库都会在log.txt中提示,这样我们就可以查看log.txt来解决问题了。
关于SQL Server 2000数据库使用的isql命令进行批量处理的知识就介绍到这里了,希望本次的介绍能够给您带来一些收获,谢谢!
【编辑推荐】