SQL server中sqlcmd命令行工具的使用方法.docx

上传人:b****2 文档编号:23551450 上传时间:2023-05-18 格式:DOCX 页数:18 大小:26.47KB
下载 相关 举报
SQL server中sqlcmd命令行工具的使用方法.docx_第1页
第1页 / 共18页
SQL server中sqlcmd命令行工具的使用方法.docx_第2页
第2页 / 共18页
SQL server中sqlcmd命令行工具的使用方法.docx_第3页
第3页 / 共18页
SQL server中sqlcmd命令行工具的使用方法.docx_第4页
第4页 / 共18页
SQL server中sqlcmd命令行工具的使用方法.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

SQL server中sqlcmd命令行工具的使用方法.docx

《SQL server中sqlcmd命令行工具的使用方法.docx》由会员分享,可在线阅读,更多相关《SQL server中sqlcmd命令行工具的使用方法.docx(18页珍藏版)》请在冰豆网上搜索。

SQL server中sqlcmd命令行工具的使用方法.docx

SQLserver中sqlcmd命令行工具的使用方法

SQLserver中sqlcmd命令行工具的使用方法

SQLserver2008在C:

\ProgramFiles\MicrosoftSQLServer\100\Tools\Binn,有的可能在

C:

\ProgramFiles\MicrosoftSQLServer\90\Tools\Binn,你自己找找。

然后看看PATH路径中有没有path=

C:

\ProgramFiles\MicrosoftSQLServer\100\Tools\Binn

默认你安装了MSserver就会有。

如果是sql2000的话.那么就用osql连接,如以下例子,osql-SLocalhost-Usa-P123注意大小写"selectcount(*)fromsysobjects"如果在sql2005及以上版本下,把上面脚本的OSQL改为sqlcmd是可以运行的。

我使用2008使用OSQL会出现,用SQLCMD代替的提示:

-----使用工具OSQL:

C:

\Users\Administrator>osql-?

//查看osql用法

C:

\Users\Administrator>osql-SZLQ-PC-Usa-P123?

Microsoft(R)SQLServerCommandLineTool

Version10.0.1600.22NTINTELX86

Copyright(c)MicrosoftCorporation. Allrightsreserved.

Note:

osqldoesnotsupportallfeaturesofSQLServer2008.

Usesqlcmdinstead.SeeSQLServerBooksOnlinefordetails.usage:

osql             [-Uloginid]         [-Ppassword]

 [-Sserver]           [-Hhostname]         [-Etrustedconnection]

 [-dusedatabasename][-llogintimeout]    [-tquerytimeout]

 [-hheaders]          [-scolseparator]     [-wcolumnwidth]

 [-apacketsize]       [-eechoinput]       [-IEnableQuotedIdentifiers]

 [-Llistservers]     [-ccmdend]           [-DODBCDSNname]

 [-q"cmdlinequery"]  [-Q"cmdlinequery"andexit]

 [-nremovenumbering] [-merrorlevel]

 [-rmsgstostderr]   [-Vseveritylevel]

 [-iinputfile]        [-ooutputfile]

 [-pprintstatistics] [-bOnerrorbatchabort]

 [-X[1]disablecommands[andexitwithwarning]]

 [-OuseOldISQLbehaviordisablesthefollowing]

     batchprocessing

     Autoconsolewidthscaling

     Widemessages

     defaulterrorlevelis-1vs1

 [-?

showsyntaxsummary]

解释:

参数-?

   

    

 显示  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,则仅重定向严重级别为  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®  批处理文件可以测试  DOS  ERRORLEVEL  的值并适当处理错误。

  

    

 -u   

    

 指定  output_file  存储为  Unicode  格式,而不管  input_file  为何种格式。

   

    

 -R   

    

 指定在将货币、日期和时间数据转换为字符数据时  SQL  Server  ODBC  驱动程序使用客户端设置。

   

    

 -O   

    

 为与  isql  的早期版本行为匹配,指定停用某些  osql  功能。

下列功能停用:

     

    

 EOF  批处理   

    

    

 控制台宽度自动调整   

    

    

 宽信息     

 同时还将  DOS  ERRORLEVEL  的默认值设置为  –1。

   

    

 注释   

 osql  实用工具从操作系统直接启动,并且使用本文中列出的区分大小写的选项。

启动后,osql  接受  SQL  语句并将它们交互地发送到  SQL  Server。

结果被格式化并显示在屏幕上  (stdout)。

可使用  QUIT  或  EXIT  退出  osql。

  

    

 如果启动  osql  时未指定用户名,SQL  Server  2000  将检查环境变量并使用它们,例如  osqluser=(user)  或  osqlserver=(server)。

如果未设置环境变量,则使用工作站用户名。

如果未指定服务器,则使用工作站名称。

  

    

 如果  -U  或  -P  选项都没有使用,则  SQL  Server  2000  将尝试使用  Windows  身份验证模式进行连接。

身份验证基于运行  osql  的  Microsoft  Windows  NT®  用户帐户。

交互性使用  osql  

 若要交互性使用  osql,请在命令提示符处键入  osql  命令(以及任何选项)。

   

    

 可以通过键入类似下行的命令,在包含由  osql  执行的查询的文件(例如  Stores.qry)中进行读取:

   

    

 osql  /U  alma  /P  /i  stores.qry   

    

 该文件必须包含命令终止符。

     

    

 可以通过键入类似下行的命令,在包含查询的文件(例如  Titles.qry)中进行读取并将结果导向另一文件:

   

    

 osql  /U  alma  /P  /i  titles.qry  /o  titles.res   

    

 交互性使用  osql  时,为把操作系统文件读入到命令缓冲区,可使用:

r  file_name。

不要在文件中包含命令终止符;在完成编辑后交互输入终止符。

  

举例:

C:

\Users\Administrator>osql-SZLQ-PC-Usa-P123 -q"selectcount(*)as count

 fromsysobjects"

  count

 -----------

       1999

(1rowaffected)

//如果想继续执行SQL查询,输入关键字go

C:

\Users\Administrator>osql-SZLQ-PC-Usa-P123-dtest1 -q"select* from

student"

 sno        sname               sage                   ssex

 ----------------------------------------------------------

          1张三                  1980-01-2300:

00:

00.000男

          2李四                  1982-12-1200:

00:

00.000女

          3张飒                  1981-09-0900:

00:

00.000男

          4莉莉                  1983-03-2300:

00:

00.000女

          5王弼                  1982-06-2100:

00:

00.000男

          6王丽                  1984-10-1000:

00:

00.000女

          7刘香                  1980-12-2200:

00:

00.000女

(7rowsaffected)

1>select*fromteacher

2>go //go是立即执行该缓存语句

 tno        tname

 -------------------------------

          1张老师

          2王老师

          3李老师

          4赵老师

          5刘老师

          6向老师

          7李文静

          8叶平

(8rowsaffected)

1>

 

-----使用工具SQLCMD:

使用sqlcmd:

C:

\Users\Administrator>sqlcmd -?

Microsoft(R)SQLServerCommandLineTool

Version10.0.1600.22NTINTELX86

Copyright(c)MicrosoftCorporation. Allrightsreserved.

usage:

Sqlcmd           [-Uloginid]         [-Ppassword]

 [-Sserver]           [-Hhostname]         [-Etrustedconnection]

 [-dusedatabasename][-llogintimeout]    [-tquerytimeout]

 [-hheaders]          [-scolseparator]     [-wscreenwidth]

 [-apacketsize]       [-eechoinput]       [-IEnableQuotedIdentifiers]

 [-ccmdend]           [-L[c]listservers[cleanoutput]]

 [-q"cmdlinequery"]  [-Q"cmdlinequery"andexit]

 [-merrorlevel]       [-Vseveritylevel]    [-Wremovetrailingspaces]

 [-uunicodeoutput]   [-r[0|1]msgstostderr]

 [-iinputfile]        [-ooutputfile]       [-znewpassword]

 [-f|i:

[,o:

]][-Znewpasswordandexit]

 [-k[1|2]remove[replace]controlcharacters]

 [-yvariablelengthtypedisplaywidth]

 [-Yfixedlengthtypedisplaywidth]

 [-p[1]printstatistics[colonformat]]

 [-Ruseclientregionalsetting]

 [-bOnerrorbatchabort]

 [-vvar="value"...] [-Adedicatedadminconnection]

 [-X[1]disablecommands,startupscript,enviromentvariables[andexit]]

 [-xdisablevariablesubstitution]

 [-?

showsyntaxsummary]

举例:

C:

\Users\Administrator>sqlcmd-Szlq-pc-Usa-P123-dtest1

1>select*fromteacher

2>go

tno        tname

-------------------------------

         1张老师

         2王老师

         3李老师

         4赵老师

         5刘老师

         6向老师

         7李文静

         8叶平

(8rowsaffected)

1>

C:

\Users\Administrator>sqlcmd-Szlq-pc-Usa-P123

1>usetest1

2>selecttop10*fromsc

3>go

Changeddatabasecontextto'test1'.

sno        cno        score

---------------------------------

         1          1         80

         1          2         86

         1          3         83

         1          4         8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1