命令⾏下执⾏SQL语句(ISQL或OSQL)
osql  实⽤⼯具
osql  实⽤⼯具使您得以输⼊  Transact-SQL  语句、系统过程和脚本⽂件。该实⽤⼯具通过  ODBC  与服务器通讯。
语法
osql
[-?]  |
[-L]  |
[
{
{-U  login_id  [-P  password]}
|  -E
}
[-S  server_name[\instance_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]  [-I]  [-D  data_source_name]
[-c  cmd_end]  [-q  "query"]  [-Q  "query"]
[-n]  [-m  error_level]  [-r  {0  |  1}]
[-i  input_file]  [-o  output_file]  [-p]
[-b]  [-u]  [-R]  [-O]
]
参数-?
显⽰  osql  开关的语法摘要。
-L
列出在本地配置的服务器和在⽹络上⼴播的服务器的名称。
-U  login_id
⽤户登录  ID。登录  ID  区分⼤⼩写。
-P  password
是⽤户指定的密码。如果未使⽤  -P  选项,osql  将提⽰输⼊密码。如果在命令提⽰符的末尾使⽤  -P  选项⽽不带密码,osql  使⽤默认密码  (NULL)。密码区分⼤⼩写。
OSQLPASSWORD  环境变量使您得以为当前会话设置默认密码。因此,不需要通过硬编码来在批处理⽂件中设置密码。
如果没有为  -P  选项指定密码,osql  ⾸先检查  OSQLPASSWORD  变量。如果未设置值,osql  使⽤默认密码  (NULL)。以下⽰例在命令提⽰符处设置  OSQLPASSWORD  变量,然后访问  osql  实⽤⼯具:
C:\>SET  OSQLPASSWORD=abracadabra
C:\>osql
-E
使⽤信任连接⽽不请求密码。
-S  server_name[\instance_name]
指定要连接的  Microsoft®  SQL  Server™  2000  实例。在该服务器上指定  server_name  以连接到  SQL  Server  的默认实例。在该服务器上指定  server_name\instance_name  以连接到⼀个已命名的  SQL  Server  2000  的实例。如果未指定服务器,osql  将连接到本地计算机上的  SQL  Server  默认实例。从⽹络上的远程计算机执⾏  osql  时,此选项是必需的。
-H  wksta_name
是⼯作站名称。⼯作站名称存储在  sysprocesses.hostname  中并由  sp_who  显⽰。如果未指定此选项,则采⽤当前计算机名称。
-d  db_name
启动  osql  时发出⼀个  USE  db_name  语句。
-l  time_out
指定  osql  登录超时之前的秒数。登录到  osql  的默认超时为  8  秒。
-t  time_out
指定命令超时之前的秒数。如果未指定  time_out  值,则命令不会超时。
-h  headers
指定要在列标题之间打印的⾏数。默认为每⼀查询结果集打印⼀次标题。⽤  –1  指定不打印标题。如果使⽤  -1,则在参数和设置之间⼀定不能有空格(可以是  -h-1,不能是  -h  –1)。
-s  col_separator
指定列分隔符字符,其默认为空格。若要使⽤对操作系统有特殊含义的字符(例如  |  ;  &  <  >),请将该字符⽤双引号  (")  引起来。  -w  column_width
允许⽤户设置屏幕输出的宽度。默认为  80  个字符。当输出⾏达到其最⼤屏幕宽度时,会拆分为多个⾏。
-a  packet_size
使您得以请求不同⼤⼩的数据包。packet_size  的有效值在  512  到  65535  之间。osql  的默认值为服务器的默认值。数据包⼤⼩的增加可以提⾼较⼤脚本执⾏的性能,在这种执⾏中  GO  命令之间  SQL  语句的数量很重要。Microsoft  的测试表明  8192  是⼤容量复制操作典型的最快设置。可以请求更⼤的数据包⼤⼩,但如果请求不能得到批准,则  osql  默认为服务器的默认值。
-e
回显输⼊。
-I
设置  QUOTED_IDENTIFIER  连接选项为开启。
-D  data_source_name
连接到⽤  Microsoft  SQL  Server  的  ODBC  驱动程序定义的  ODBC  数据源。osql  连接使⽤该数据源中指定的选项。
说明该选项不适⽤于其它驱动程序定义的数据源。
-c  cmd_end
指定命令终⽌符。默认情况下,通过单独在⼀⾏中输⼊  GO  来终⽌命令并将其发送到  SQL  Server  2000。在重置命令终⽌符时,不要使⽤对操作系统有特殊含义的  Transact-SQL  保留字或字符,⽆论其前⾯是否有反斜杠。
-q  "query"
启动  osql  时执⾏查询,但是在查询完成时不退出  osql。(注意查询语句不应包含  GO)。如果从批处理⽂件中发出查询,请使⽤
%variables  或环境  %variables%。例如:
SET  table  =  sysobjects
osql  /q  "Select  *  from  %table%"
将查询⽤双引号引起来,将查询中嵌⼊的任何内容⽤单引号引起来。
-
Q  "query"
执⾏查询并⽴即退出  osql。将查询⽤双引号引起来,将查询中嵌⼊的任何内容⽤单引号引起来。
-n
从输⼊⾏中删除编号和提⽰符号  (>)。
-m  error_level
⾃定义错误信息的显⽰。显⽰指定的或更⾼严重级别错误的消息数、状态和错误级别。不显⽰严重级别低于指定级别的错误的任何信息。⽤  -1  指定与消息⼀起返回所有标题,即使是信息类的消息。如果⽤  –1,则在参数和设置之间不能有空格(可以是  -m-1,不能是  -m  -1)。
sql存储过程实例
-r  {0  |  1}
将消息输出重定向到屏幕  (stderr)。如果未指定参数,或指定参数为  0,则仅重定向严重级别为  17  或更⾼的错误信息。如果指定参数为  1,则将重定向所有消息输出(包括  "print")。
-i  input_file
标识包含⼀批  SQL  语句或存储过程的⽂件。⼩于  (<)  ⽐较运算符可以⽤来代替  –i。
-o  output_file
标识从  osql  接收输出的⽂件。⼤于  (>)  ⽐较运算符可以⽤来代替  –o。
如果  input_file  不是  Unicode  并且没有指定  -u,则  output_file  将存储为  OEM  格式。如果  input_file  是  Unicode  或者指定了-u,则  output_file  将存储为  Unicode  格式。
-p
打印性能统计。
-b
指定发⽣错误时  osql  退出并返回⼀个  DOS  ERRORLEVEL  值。当  SQL  Server  错误信息的严重级别为  10  或更⾼时,返回给DOS  ERRORLEVEL  变量的值为  1;否则返回  0。Microsoft  MS-DOS®  批处理⽂件可以测试  DOS  ERRORLEVEL  的值并适当处理错误。
-u
指定  output_file  存储为  Unicode  格式,⽽不管  input_file  为何种格式。
-R
指定在将货币、⽇期和时间数据转换为字符数据时  SQL  Server  ODBC  驱动程序使⽤客户端设置。
-O
为与  isql  的早期版本⾏为匹配,指定停⽤某些  osql  功能。下列功能停⽤:
EOF  批处理
控制台宽度⾃动调整
宽信息
同时还将  DOS  ERRORLEVEL  的默认值设置为  –1。
注释
osql  实⽤⼯具从操作系统直接启动,并且使⽤本⽂中列出的区分⼤⼩写的选项。启动后,osql  接受  S
QL  语句并将它们交互地发送到SQL  Server。结果被格式化并显⽰在屏幕上  (stdout)。可使⽤  QUIT  或  EXIT  退出  osql。
如果启动  osql  时未指定⽤户名,SQL  Server  2000  将检查环境变量并使⽤它们,例如  osqluser=(user)  或  osqlserver=(server)。如果未设置环境变量,则使⽤⼯作站⽤户名。如果未指定服务器,则使⽤⼯作站名称。
如果  -U  或  -P  选项都没有使⽤,则  SQL  Server  2000  将尝试使⽤  Windows  ⾝份验证模式进⾏连接。⾝份验证基于运⾏  osql  的  Microsoft  Windows  NT®  ⽤户帐户。交互性使⽤  osql
若要交互性使⽤  osql,请在命令提⽰符处键⼊  osql  命令(以及任何选项)。
可以通过键⼊类似下⾏的命令,在包含由  osql  执⾏的查询的⽂件(例如  Stores.qry)中进⾏读取:
osql  /U  alma  /P  /i  stores.qry
该⽂件必须包含命令终⽌符。
可以通过键⼊类似下⾏的命令,在包含查询的⽂件(例如  Titles.qry)中进⾏读取并将结果导向另⼀⽂件:
osql  /U  alma  /P  /i  titles.qry  /o  s
交互性使⽤  osql  时,为把操作系统⽂件读⼊到命令缓冲区,可使⽤:r  file_name。不要在⽂件中包含命令终⽌符;在完成编辑后交互输⼊终⽌符。
本⽂来⾃CSDN博客,转载请标明出处:

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