zoukankan      html  css  js  c++  java
  • 【SQLSERVER】CMD执行SQL语句

    osql -S "HIGH\UNCHIN" -U sa -P bzpass -d BzDB2 -Q "update bz_LocStkMta set HIKIATSU = 0"

    MYSQL可以在控制台下进行操作,利用命令

    SQL代码
    mysql -h localhost -u root -p123456  

    就可以登陆MYSQL的控制台。

    sql server也提供了控制台下的操作功能。
    在SQL SERVER的 binn目录下,提供了osql.exe与isql.exe这两个文件。
    这两个程序都提供了访问SQL SERVER的功能,这两个程序在连接SQL SERVER的方式上有区别。
    osql.exe通过ODBC的方式与SQL SERVER进行连接 ,而isql.exe通过db library的方式来连接SQL SERVER。
    CSDN上的数据库牛们推荐使用OSQL进行操作,具体原因也不管那么多了,咱们会点简单的操作就行了。。

    在CMD下输入osql -? 就可以看到帮忙信息了。

    C:\>osql -?
    Microsoft (R) SQL Server 命令行工具
    版本 9.00.1399.06 NT INTEL X86
    版权所有 (c) Microsoft Corporation。保留所有权利。

    注意: osql 并不支持 SQL Server 2005的所有功能。
    请使用 sqlcmd。有关详细信息,请参阅 SQL Server 联机丛书。

    代码
    用法: osql                   [-U 登录 ID]          [-P 密码]
      [
    -S 服务器]                [-H 主机名]           [-E 可信连接]
      [
    -d 使用数据库名称]        [-l 登录超时值]       [-t 查询超时值]
      [
    -h 标题]                  [-s 列分隔符]         [-w 列宽]
      [
    -a 数据包大小]            [-e 回显输入]         [-I 允许带引号的标识符]
      [
    -L 列出服务器]            [-c 命令结束]         [-D ODBC DSN 名称]
      [
    -"命令行查询"]          [-"命令行查询" 并退出]
      [
    -n 删除编号方式]          [-m 错误级别]
      [
    -r 发送到 stderr 的消息]  [-V 严重级别]
      [
    -i 输入文件]              [-o 输出文件]
      [
    -p 打印统计信息]               [-b 出错时中止批处理]
      [
    -X[1] 禁用命令,[退出的同时显示警告]]
      [
    -O 使用旧 ISQL 行为禁用下列项]
          
    <EOF> 批处理
          自动调整控制台宽度
          宽消息
          默认错误级别为 
    -1 和 1
      [
    -? 显示语法摘要]

      详细语法用到的时候再看吧,这里先只记一些最简单的用法。

      osql -S localhost -U sa -P123456 -d northwind -Q "select top 10 name from sysobjects"

      在CMD下执行上面那条语句,
      表示让osql登陆localhost这台服务器,所用的用户名为sa,密码为123456,登陆后转到northwind这个数据库。
      执行select top 10 name from sysobjects这条查询。

      在查询执行完以后osql会结果显示到控制台,并马上退出。
     
      我们可以选择将查询结果输出到文件,只要加上-o参数就行:
      osql -S localhost -U sa -P123456 -d northwind -Q "select top 10 name from sysobjects" -o "c:\rs.txt"

      下面这条语句将会从一个文件中读取SQL语句并且发送到SQL SERVER里面去执行:
      osql -S localhost -U sa -P123456 -d northwind -i "c:\a.txt"

      如果在连接的时候没有指定数据库,那默认就是master库了。

      osql -L
      列出当前可用的SQL SERVER服务器。

      如果我们只输入:
      osql -S localhost -U sa -P123456
      这样我们就会进入osql的环境,这时我们可以写任何的sql语句 ,写完后这些SQL并不会马上执行,而需要我们再输入一个go
      才会将我们输入的SQL组成一个批处理发送到数据库上面去执行。

      进入osql环境以后,输入exit可以退出来。

      osql利用odbc的方式与sql server进行通信 。
      isql 利用DB Lib的方式与sql server进行通信 。

      OSQL只能连接SQL SERVER2000,如果想连接2005,要利用sqlcmd.exe