DOS执行SQL语句
catboy 发表于 2007-7-28 1:57:00
推荐isql  实用工具使您得以输入  Transact-SQL  语句、系统过程和脚本文件;并且
使用  DB-Library  与  Microsoft®  SQL  Server™  2000  进行通讯。
语法
isql
[-?]  |
[-L]  |
[
{
{-U  login_id  [-P  password]}
|  -E
}
[-S  server_name]  [-H  wksta_name]  [-d  db_name]
[-l  time_out]  [-t  time_out]  [-h  headers]
[-s col_separator] [-w column_width] [-a  packet_size]
[-e]  [-x  max_text_size]
[-c  cmd_end]  [-q  "query"]  [-Q  "query"]
[-n]  [-m  error_level]  [-r  {0  |  1}]
[-i  input_file]  [-o  output_file]  [-p]
[-b]  [-O]
]
参数-?
显示  isql  开关的语法摘要。
-L
列出在本地配置的服务器和在网络上广播的服务器的名称。
-U  login_id
用户登录  ID。登录  ID  区分大小写。
-P  password
是用户指定的密码。如果未使用  -P  选项,isql  将提示输入密码。如果在命令提示
的末尾使用  -P  选项而不带密码,isql  使用默认密码  (NULL)。密码区分大小写。
ISQLPASSWORD  环境变量使您得以为当前会话设置默认密码。因此,不需要通过硬编码来
在批处理文件中设置密码。
如果没有为  -P  选项指定密码,isql  首先检查  ISQLPASSWORD  变量。如果未设
置值,isql  使用默认密码  (NULL)。以下示例在命令提示处设置  ISQLPASSWORD  变量,然后访问  isql  实用工具:
C:\>SET  ISQLPASSWORD=abracadabra
C:\>isql
-E
使用信任连接而不请求密码。
-S  server_name
指定要连接到的  SQL  Server  默认实例。isql  不支持连接到  SQL  Server  2000  命名实例。如果未指定服务器,isql  将连接到本地计算机上的  SQL  Server  默认实例。如果要在网络上从远程计算机执行  isql,则需要此选项。
-H  wksta_name
是工作站名称。工作站名称存储在  sysprocesses.hostname  中并由  sp_who  显示。如果未指定,则采用当前计算机名称。
-d  db_name
启动  isql  时发出一个  USE  db_name  语句。
-l  time_out
指定  isql  登录超时之前的秒数。如果未指定  time_out  值,则命令无限期地运行。登录到  isql  的默认超时为  8  秒。
-t  time_out
指定命令超时之前的秒数。如果未指定  time_out  值,则命令会无限期地运行;登录
到  isql  的默认超时为  8  秒。
-h  headers
指定要在列标题之间打印的行数。默认为每一查询结果集打印一次标题。使用–1  指
定不打印标题。如果使用–1,则在参数和设置之间不能有空格(可以是  -h-1,不能是
-h  –1)。
-s  col_separator
指定列分隔符字符,其默认为空格。若要使用对操作系统有特殊含义的字符(例如  |  ;  &  <  >),请将该字符用双引号  (")  引起来。
-w  column_width
允许用户设置屏幕输出的宽度。默认为  80  个字符。当输出行达到其最大屏幕宽度时,会拆分为多个行。
-a  packet_size
使您得以请求不同大小的数据包。packet_size  的有效值介于  512  和  65535  之间。Microsoft  Windows  NT®  版中的  isql  默认值为  8192;另外,Microsoft  MS-DOS®  版中的  isql  默认值为  512,但在该版本中也可以请求
更大的数据包。数据包大小的增加可以提高较大脚本执行的性能,在这种执行中  GO  命
令之间  SQL  语句的数量很重要。Microsoft  的测试表明  8192  是大容量复制操作
典型的最快设置。可以请求更大的数据包大小,但是如果请求不能得到批准,则  isql  默
认为  512。
-e
回显输入。
sql连接不上服务器
-x  max_text_size
指定返回文本数据的最大长度,以字节为单位。长于  max_text_size  的文本值将被截断。如果未指定  max_text_size,则文本数据在  4096  字节处截断。
-c  cmd_end
指定命令终止符。默认情况下,通过单独在一行中输入  GO  来终止命令并将其发送到SQL Server 2000。在重置命令终止符时,不要使用对操作系统有特殊含义的Transact-SQL  保留字或字符,无论其前面是否有反斜杠。
-
q  "query"
启动  isql  时执行查询,但是在查询完成时不退出  isql。(注意查询语句不应包含GO)。如果从批处理文件中发出查询,可使用  %variables。环境  %variables%  也可用。例如:
SET  table  =  sysobjects
isql  /q  "Select  *  from  %table%"
将查询用双引号引起来,将查询中嵌入的任何内容用单引号引起来。
-Q  "query"
执行查询,在查询完成时立即退出  isql。将查询用双引号引起来,将查询中嵌入的任何
内容用单引号引起来。
-n
从输入行中删除编号和提示符号  (>)。
-m  error_level
自定义错误信息的显示。显示指定的或更高严重级别错误的消息数、状态和错误级别。不
显示严重级别低于指定级别的错误的任何信息。用  -1  指定与消息一起返回所有标题,
即使是信息类的消息。如果使用–1,则在参数和设置之间不能有空格(可以是  -m-1,不能是  -m  -1)。
-r  {0  |  1}
将消息输出重定向到屏幕  (stderr)。如果未指定参数,或指定参数为  0,那么仅重定
向严重级别为  17  或更高的错误信息。如果指定参数为  1,则将重定向所有消息输出(包括  "print")。
-i  input_file
标识包含一批  SQL  语句或存储过程的文件。小于  (<)  比较运算符可以用来代替
–i。
-o  output_file
标识从  isql  接收输出的文件。大于  (>)  比较运算符可以用来代替–o。
-p
打印性能统计。
-b
指定错误发生时  isql  退出并返回一个  DOS  ERRORLEVEL  值。当  SQL  Server  错误信息的严重级别为  10  或更高时,返回给  DOS  ERRORLEVEL  变量的
值为  1;否则,返回值为  0。MS-DOS  批处理文件可以测试  DOS  ERRORLEVEL  的
值并适当处理错误。
-O
指定  isql  还原为早期版本的行为。下列功能停用:
EOF  批处理
控制台宽度自动调整
宽信息
该选项还将  DOS  ERRORLEVEL  的默认值设置为–1。
注释
所有  DB-Library  应用程序(如  isql)连接到  SQL  Server  2000  后,作
为  SQL  Server  6.5  级客户端工作。它们不支持  SQL  Server  2000  的某些
功能。而  osql  实用工具是基于  ODBC  并支持  SQL  Server  2000  的全部功能。使用  osql  运行  isql  无法运行的脚本。有关  SQL  Server  6.5  级客
户端限制的更多信息,请参见  SQL  Server  联机丛书中的将早期版本客户端连接到SQL  Server  2000。
默认情况下,SQL  查询分析器将  SQL  脚本保存为  Unicode  文件。isql  实用
工具不支持  Unicode  输入文件。尝试在  -i  开关中指定这些文件中的某一个时会导
致错误  170:
Incorrect  syntax  near  '  '.
使用  osql  实用工具运行这些  Unicode  文件。另一种方法是在  SQL  查询分
析器的"文件/另存为"对话框的"文件格式"列表中指定  ANSI  而非  Unicode。
与大多数  DB-Library  应用程序类似,isql  实用工具在默认情况下不设置任何连接
选项。用户如果希望使用特定连接选项设置,必须交互地或在脚本中发出  SET  语句。
isql  实用工具从操作系统直接启动,并且使用本文中列出的区分大小写的选项。启动后,isql  接受  Transact-SQL  语句并将它们交互地发送到  SQL  Server  2000。结果
将格式化并打印到标准输出设备(屏幕)。可使用  QUIT  或  EXIT  退出  isql。
如果启动  isql  时未指定用户名,则  SQL  Server  2000  将检查环境变量并使
用它们,如  isqluser=(user)  或  isqlserver=(server)。如果未设置环境变量,则使
用工作站用户名。如果未指定服务器,则使用工作站名称。
如果  -U  或  -P  选项都没有使用,则  SQL  Server  2000  将尝试使用Windows  身份验证模式进行连接。身份验证基于运行  isql  的用户的  Windows  NT

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。