bat执行sql语句

    今天想试着用批处理文件调用sql语句,在网上查了一下,方法都是将要执行的sql放在sql文件中,然后使用命令执行该语句,主要有三个命令:

    1. osql

    2. isql

    3. sqlcmd


osql -S xxxxx  -d xxxxx -U xxxxx -P xxxxx -i xxxxx

osql

输入Transact-SQL语句、系统过程和脚本文件,通过ODBC与服务器通讯

-L     列出在本地配置的服务器和在网络上广播的服务器的名称

-U login_id    用户登录ID(区分大小写)

-P password    用户指定密码,如果未使用-P选项,osql将提示输入密码,如果在命令提示符的末尾使用-P选项而不带密码,osql使用默认密码(NULL)

-S server  指定要连接的Microsoft SQL Server实例,如果未指定服务器,osql将连接到本地计算机上的SQL Server默认实例,从网络上的远程计算机执行osql时,此选项是必须的

-H wksta_name   工作站名称,如果未指定此选项,则采用当前计算机名称

-d  db_name   启动osql时发出一个USE db_name语句

-l time_out   指定登陆超时之前的秒数,登录到osql默认超时为8秒

-t time_out      指定命令超时之前的秒数,未指定则不会超时

-h headers    要在列标题之间打印的行数,默认为每一查询结果集打印一次标题,-1指定不打印标题,如果使用-1,则在参数和设置之间一定不能有空格(-h-1)

-s col_seqarator     指定列分隔符字符,默认为空格,如果是对操作系统有特殊含义的字符,则将该字符用双引号引起来

-w column_width   允许用户设置屏幕输出的宽度,默认为80字符

-a packet_size    请求不同大小的数据包

-e   回显输入

-I   设置QUETED_IDENTIFIER连接选项为开启

-D  data_source-name    连接到用Microsoft SQL Server的ODBC驱动程序定义的ODBC数据源

-c cmd_end     指定命令终止符,默认情况下,通过单独在一行中输入GO来终止命令并将其发送到SQL Server2000

-q "query"   启动osql时执行查询,但是在查询完成时不退出osql,如果从批处理文件中发出查询,使用%variables或者环境%variables%

                    如:SET table = xxxx   osql /q  “select * from %table%”

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

-n   从输入行中删除编号和提示符

-m error_level   自定义错误信息的显示,显示指定的或该更高严重级别错误的消息数,状态和错误级别

-r {0|1}   将消息输出重定向到屏幕(stderr),如果未指定参数或者指定参数为0,则仅重定向严重级别为17或更高的错误信息,如果指定参数为1,则将重定向所有消息输出

-i   标识包含一批SQL语句或存储过程的文件(等同于<)

-o  标识从osql接收输出的文件(等同于>)

-p   打印性能统计

-b  指定发生错误时osql退出并返回一个DOS ERRORLEVEL值


osql和isql大部分都是相同的,都支持输入脚本,输出脚本,具有相同的参数。osql没有接口,它只会接受一个输入的命令行,或者保存的脚本。尽管存在这个缺陷,但是有时isql和query analyzer不能完成需要的工作。查询分析器不包含微软桌面引擎,当需要开发一个MSDE的应用或者需要做MSDE管理,OSQL实用程序是唯一包含的工具。ISQL和OSQL之间的另一个关键区别是每个工具建立的基础库。ISQL实在DB库的基础上开发的,OSQL在ODBC基础上开发的,DB库使用SQL6.5标准,这意味着isql或db库上开发的任何应用程序不支持新的SQL 2000的功能


sqlcmd用在sql 2005或更高版本,因为性能更好;osql 主要用于sql 7.0和sql 2000;isql主要用于sql 6.5及更早的版本!



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值