摘自msdn:http://msdn.microsoft.com/zh-cn/library/ms162773.aspx
使用 sqlcmd 实用工具,可以在命令提示符处、在 sqlCMD 模式下的“查询编辑器”中、在 Windows 脚本文件中或者在 sql Server 代理作业的操作系统 (Cmd.exe) 作业步骤中输入 Transact-sql 语句、系统过程和脚本文件。此实用工具使用 OLE DB 执行 Transact-sql 批处理。
sqlcmd [{ { -U login_id [ -P password ] } | –Etrusted connection }] [ -N encrypt connection ][ -C trust the server certificate ] [ -znew password ] [ -Znew password and exit] [ -S [protocol:]server[\instance_name][,port] ] [ -Hwksta_name ] [ -ddb_name ] [ -llogintime_out ] [ -A dedicated admin connection] [ -iinput_file ] [ -ooutput_file ] [ -f< codepage> | i:< codepage > [ <,o: < codepage > ] ] [ -u unicode output] [ -r [ 0 | 1 ] msgs to stderr ] [ -R use client regional settings] [ -q "cmdline query" ] [ -Q"cmdline query" and exit] [ -eecho input ] [ -tquerytime_out ] [ -Ienable Quoted Identifiers ] [ -v var = "value"...] [ -xdisable variable substitution ] [ -hheaders ][ -scol_separator ] [ -wcolumn_width ] [ -Wremove trailing spaces ] [ -k [ 1 | 2 ] remove[replace] control characters ] [ -ydisplay_width ] [-Ydisplay_width ] [ -b on error batch abort] [ -Vseveritylevel ] [ -merror_level ] [ -apacket_size ][ -ccmd_end ] [ -L [ c ] list servers[clean output] ] [ -p [ 1 ] print statistics[colon format]] [ -X [ 1 ] ] disable commands,startup script,enviroment variables [and exit] [ -? show Syntax summary]
变量 |
相关开关 |
R/W |
默认 |
---|---|---|---|
sqlCMDUSER |
-U |
R |
"" |
sqlCMDPASSWORD |
-P |
-- |
"" |
-S |
R |
"DefaultLocalInstance" |
|
sqlCMDWORKSTATION |
-H |
R |
"ComputerName" |
-d |
R |
"" |
|
sqlCMDLOGINTIMEOUT |
-l |
R/W |
"8"(秒) |
-t |
R/W |
"0" = 无限期等待 |
|
sqlCMDHEADERS |
-h |
R/W |
"0" |
sqlCMDCOLSEP |
-s |
R/W |
" " |
sqlCMDCOLWIDTH |
-w |
R/W |
"0" |
sqlCMDPACKETSIZE |
-a |
R |
"4096" |
sqlCMDERRORLEVEL |
-m |
R/W |
0 |
sqlCMDMAXVARTYPEWIDTH |
-y |
R/W |
"256" |
sqlCMDMAXFIXEDTYPEWIDTH |
-Y |
R/W |
"0" = 无限制 |
sqlCMDEDITOR |
|
R/W |
"edit.com" |
sqlCMDINI |
|
R |
"" |
sqlCMDUSER、sqlCMDPASSWORD 和 sqlCmdsERVER 是在使用 :Connect 时
设置的。
R 表示在程序初始化过程中只能设置一次值。
除 sqlcmd 中的 Transact-sql 语句之外,还可使用以下命令:
GO [count] |
:List |
[:] RESET |
:Error |
[:] ED |
:Out |
[:] !! |
:Perftrace |
[:] QUIT |
:Connect |
[:] EXIT |
:On Error |
:r |
:Help |
:ServerList |
:XML [ON | OFF] |
:Setvar |
:Listvar |
使用 sqlcmd 命令时,请注意以下事项:
-
除 GO 以外,所有 sqlcmd 命令必须以冒号 (:) 为前缀。
-
sqlcmd 命令只有出现在一行的开头时,才能够被识别。
-
所有 sqlcmd 命令都不区分大小写。
-
每个命令都必须位于单独的行中。命令后面不能跟随 Transact-sql 语句或其他命令。
-
命令将被立即执行。它们与 Transact-sql 语句不同,不会放在执行缓冲区中。
sqlcmd 文件名@H_518_3270@
信息性消息@H_518_3270@
sqlcmd 将输出由服务器发送的所有信息性消息。在以下示例中,执行 Transact-sql 语句后会输出信息性消息。
sqlcmd
At the sqlcmd prompt type:
USE AdventureWorks2008R2;
GO
Transact-sql 查询的输出格式@H_518_3270@
sqlcmd 首先输出列标题,其中包含在选择列表中指定的列名。列名使用 sqlCMDCOLSEP 字符分隔。默认情况下,将使用空格。如果列名短于列宽,则使用空格填充输出,直到下一列。
此行将跟随一行分隔行,分隔行是一系列的破折号字符。以下输出显示了一个示例。
启动 sqlcmd。在 sqlcmd 命令提示符下键入以下内容:
USE AdventureWorks2008R2;
SELECT TOP (2) BusinessEntityID,FirstName,LastName
FROM Person.Person;
GO
按下 Enter 时,会返回以下结果集。
BusinessEntityID FirstName LastName
---------------- ------------ ----------
285 Syed Abbas
293 Catherine Abel
(2 row(s) affected)
虽然 BusinessEntityID 列只有 4 个字符宽,但已将其扩展以适应更长的列名。默认情况下,输出会在 80 个字符处终止。可通过使用 -w 选项或设定 sqlCMDCOLWIDTH 脚本变量来进行更改。
XML 输出格式@H_518_3270@
从 FOR XML 子句得到的 XML 输出是在连续流中的未格式化的输出。
若要得到 XML 输出,请使用以下命令::XML ON。
若要关闭 XML 模式,请使用以下命令::XML OFF。
发出 XML OFF 命令之前不应显示 GO 命令,因为 XML OFF 命令会将 sqlcmd 切换回面向行的输出。
XML(流形式)数据和行集数据不能混合。如果在执行输出 XML 流的 Transact-sql 语句之前未发出 XML ON 命令,则输出将为乱码。如果已发出 XML ON 指令,则无法执行输出常规行集的 Transact-sql 语句。

注意
:XML 命令不支持 SET STATISTICS XML 语句。
sqlcmd 将输出由服务器发送的所有信息性消息。在以下示例中,执行 Transact-sql 语句后会输出信息性消息。
sqlcmd
At the sqlcmd prompt type:
USE AdventureWorks2008R2;
GO
Transact-sql 查询的输出格式@H_518_3270@
sqlcmd 首先输出列标题,其中包含在选择列表中指定的列名。列名使用 sqlCMDCOLSEP 字符分隔。默认情况下,将使用空格。如果列名短于列宽,则使用空格填充输出,直到下一列。
此行将跟随一行分隔行,分隔行是一系列的破折号字符。以下输出显示了一个示例。
启动 sqlcmd。在 sqlcmd 命令提示符下键入以下内容:
USE AdventureWorks2008R2;
SELECT TOP (2) BusinessEntityID,FirstName,LastName
FROM Person.Person;
GO
按下 Enter 时,会返回以下结果集。
BusinessEntityID FirstName LastName
---------------- ------------ ----------
285 Syed Abbas
293 Catherine Abel
(2 row(s) affected)
虽然 BusinessEntityID 列只有 4 个字符宽,但已将其扩展以适应更长的列名。默认情况下,输出会在 80 个字符处终止。可通过使用 -w 选项或设定 sqlCMDCOLWIDTH 脚本变量来进行更改。
XML 输出格式@H_518_3270@
从 FOR XML 子句得到的 XML 输出是在连续流中的未格式化的输出。
若要得到 XML 输出,请使用以下命令::XML ON。
若要关闭 XML 模式,请使用以下命令::XML OFF。
发出 XML OFF 命令之前不应显示 GO 命令,因为 XML OFF 命令会将 sqlcmd 切换回面向行的输出。
XML(流形式)数据和行集数据不能混合。如果在执行输出 XML 流的 Transact-sql 语句之前未发出 XML ON 命令,则输出将为乱码。如果已发出 XML ON 指令,则无法执行输出常规行集的 Transact-sql 语句。

注意
:XML 命令不支持 SET STATISTICS XML 语句。
sqlcmd 首先输出列标题,其中包含在选择列表中指定的列名。列名使用 sqlCMDCOLSEP 字符分隔。默认情况下,将使用空格。如果列名短于列宽,则使用空格填充输出,直到下一列。
此行将跟随一行分隔行,分隔行是一系列的破折号字符。以下输出显示了一个示例。
启动 sqlcmd。在 sqlcmd 命令提示符下键入以下内容:
USE AdventureWorks2008R2;
SELECT TOP (2) BusinessEntityID,FirstName,LastName
FROM Person.Person;
GO
按下 Enter 时,会返回以下结果集。
BusinessEntityID FirstName LastName
---------------- ------------ ----------
285 Syed Abbas
293 Catherine Abel
(2 row(s) affected)
虽然 BusinessEntityID 列只有 4 个字符宽,但已将其扩展以适应更长的列名。默认情况下,输出会在 80 个字符处终止。可通过使用 -w 选项或设定 sqlCMDCOLWIDTH 脚本变量来进行更改。
从 FOR XML 子句得到的 XML 输出是在连续流中的未格式化的输出。
若要得到 XML 输出,请使用以下命令::XML ON。
若要关闭 XML 模式,请使用以下命令::XML OFF。
发出 XML OFF 命令之前不应显示 GO 命令,因为 XML OFF 命令会将 sqlcmd 切换回面向行的输出。
XML(流形式)数据和行集数据不能混合。如果在执行输出 XML 流的 Transact-sql 语句之前未发出 XML ON 命令,则输出将为乱码。如果已发出 XML ON 指令,则无法执行输出常规行集的 Transact-sql 语句。
|
---|
:XML 命令不支持 SET STATISTICS XML 语句。 |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。