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**]     ] [参数](http://www.588188.com/netbook/sqlserver2000/coprompt/cp_osql_1wxl.htm#)
**-?** 显示 **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**)。 **-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 错误信息的严重级别为 10 或更高时,返回给 DOS ERRORLEVEL 变量的值为 1;否则返回 0。Microsoft MS-DOS® 批处理文件可以测试 DOS ERRORLEVEL 的值并适当处理错误。 **-u** 指定 *output_file* 存储为 Unicode 格式,而不管 *input_file *为何种格式

wingc

Read more posts by this author.