osql -U user -P password -d 你的库 -i "c:\1.sql" -o D:\Out.txt 参数 -o D:\Out.txt  将结果输出到文本文件里看看.
 参数 -d db_name
       启动 osql 时发出一个 USE db_name 语句。就是你在那个库下执行SQL语句.
 --注意参数大小写.

解决方案 »

  1.   

    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&reg; SQL Server&#8482; 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,则仅重定向严重级别为 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&reg; 批处理文件可以测试 DOS ERRORLEVEL 的值并适当处理错误。-u指定 output_file 存储为 Unicode 格式,而不管 input_file 为何种格式。-R指定在将货币、日期和时间数据转换为字符数据时 SQL Server ODBC 驱动程序使用客户端设置。-O为与 isql 的早期版本行为匹配,指定停用某些 osql 功能。下列功能停用: EOF 批处理
    控制台宽度自动调整
    宽信息 
    同时还将 DOS ERRORLEVEL 的默认值设置为 –1。
      

  2.   

    try
    osql -S 服务器名 -U user -P password -d 你的库 -i "c:\1.sql"
      

  3.   

    osql -S server  -Uuser -Ppassword -d dbname -i "c:\test.sql"