【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