osql 实用工具

使用 osql 实用工具,可以输入 Transact-SQL 语句、系统过程和脚本文件。 此实用工具通过 ODBC 与服务器通信。

 语法

osql
[-?] |
[-L] |
[
  {
     {-Ulogin_id [-Ppassword]} | –E }
     [-Sserver_name[\instance_name]] [-Hwksta_name] [-ddb_name]
     [-ltime_out] [-ttime_out] [-hheaders]
     [-scol_separator] [-wcolumn_width] [-apacket_size]
     [-e] [-I] [-D data_source_name]
     [-ccmd_end] [-q "query"] [-Q"query"]
     [-n] [-merror_level] [-r {0 | 1}]
     [-iinput_file] [-ooutput_file] [-p]
     [-b] [-u] [-R] [-O]
]

 参数

-S server_name[/instance_name] 
指定要连接到的 Microsoft SQL Server 实例。指定 server_name 将连接到该服务器上 SQL Server 的默认实例。指定 server_name/instance_name 将连接到该服务器上 SQL Server 的某个命名实例。如果未指定服务器,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 的有效值在 51265535 之间。osql 的默认值为服务器的默认值。执行较大的脚本时,各个 GO 命令之间的 SQL 语句的数量是庞大的,因此增大数据包可以提高性能。Microsoft 的测试表明大容量复制操作的最快设置通常为 8192。可以请求更大的数据包,但如果请求不能得到批准,则 osql 会将此值默认为服务器的默认值。

-e 
回显输入。

-I 
将 QUOTED_IDENTIFIER 连接选项设置为开启。

-D data_source_name 
连接到用 ODBC 驱动程序为 Microsoft SQL Server 定义的 ODBC 数据源。osql 连接使用该数据源中指定的选项。

注意:  
此选项不适用于为其它驱动程序定义的数据源。
 


-c cmd_end 
指定命令终止符。默认情况下,可以在行中输入一个单独的 GO 来终止命令,并将该命令发送到 SQL Server。如果要重置命令终止符,请勿使用对操作系统有特殊含义的 Transact-SQL 保留字或字符,无论其前面是否有反斜杠。

-q " query " 
启动 osql 时执行查询,但在查询完成时不退出 osql。(注意查询语句不应包含 GO)。如果从批处理文件中发出查询,请使用 %variables 或环境 %variables%。例如: 

 复制代码 
SET table=sys.objects
osql -E -q "select name, object_id from %table%"
 

将查询用双引号括起来,将查询中嵌入的任何内容用单引号括起来。 

-Q " query " 
执行查询并立即退出 osql。将查询用双引号括起来,将查询中嵌入的任何内容用单引号括起来。

-n 
从输入行中删除编号和提示符号 (>)。

-m error_level 
自定义错误信息的显示。显示指定的或更高严重级别的错误的消息数、状态和错误级别。不显示低于指定级别的错误的信息。使用 -1 可以指定返回所有标题及其消息,即使是信息型消息。如果使用 -1,则在参数和设置之间不能有空格(可以是 -m-1,不能是 -m -1)。

-r {0 | 1} 
将消息输出重定向到屏幕 (stderr)。如果不指定参数,或指定参数为 0,则仅重定向严重级别为 11 或更高的错误信息。如果指定参数为 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 错误消息的严重级别为 11 或更高,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

命令

命令

说明

GO

执行上一个 GO 命令之后输入的所有语句。

RESET

清除已输入的所有语句。

QUIT 或 EXIT( )

退出 osql

Ctrl+C

结束查询但不退出 osql

 

 

 

 

 

 

 

 

例子

osql -E -d  数据库 -i SqlScript.sql -r 1 -b  -w 1000 -n

osql -S zx\SQLSERVER2008 -U sa -P sa -d 数据库 -i SqlScript.sql -r 1 -b  -w 1000 -n  

 注意:在 SQL Server 的未来版本中将删除此功能。 请避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。 请改用 sqlcmd

详细资料:http://msdn.microsoft.com/zh-cn/library/ms162806.aspx 

 

 

 

转载于:https://www.cnblogs.com/zhangx/archive/2012/07/13/2590111.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值