SQL server cmd 实用工具
[{ { -U login_id [ -P password ] } | –E trusted connection }] [ -z new password ] [ -Z new password and exit]
[ -S server_name [ \ instance_name ] ] [ -H wksta_name ] [ -d db_na [ -l login time_out ] [ -A dedicated admin connection ]
[ -i input_file ] [ -o output_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 ]
[ -e echo input ] [ -t query time_out ]
[ -I enable Quoted Identifiers ]
[ -v var = "value"...] [ -x disable variable substitution ]
[ -h headers ][ -s col_separator ] [ -w column_width ]
[ -W remove trailing spaces ]
[ -k [ 1 | 2 ] remove[replace] control characters ]
[ -y display_width ] [-Y display_width ]
[ -b on error batch abort ] [ -V severitylevel ] [ -m error_level ] [ -a packet_size ][ -c cmd_end ]
[ -L [ c ] list servers[clean output] ]
[ -p [ 1 ] print statistics[colon format] ]
[ -X [ 1 ] ] disable commands, startup script, enviroment variables [ -? show syntax summary ]
注意:
安全说明:
安全说明:注意:
注意:
返回。如果不指定此选项,则默认为当前计算机名称。此名称可用来标识不同的sqlcmd会话。
-d db_name
启动sqlcmd时发出一个USE db_name语句。此选项设置sqlcmd脚本变量SQLCMDDBNAME。它指定初始数据库。默认为您的登录名的默认数据库属性。如果数据库不存在,则生成错误消息且sqlcmd退出。
-l login time_out
指定在您尝试连接到服务器时OLE DB 访问接口的sqlcmd 登录超时时间(以秒计)。此选项设置sqlcmd脚本变量SQLCMDLOGINTIMEOUT。登录sqlcmd的默认超时时间为8 秒。登录超时设定必须是介于0 和
65534 之间的数字。如果提供的值不是数值或不在此范围内,sqlcmd将生成错误消息。该值为0 时,则允许无限制等待。
-A dedicated admin connection
使用专用管理员连接(DAC) 登录到SQL Server。此类型连接用于排除服务器故障。这只适用于支持DAC 的服务
器。如果DAC 不可用,sqlcmd会生成错误消息,然后退出。有关DAC 的详细信息,请参阅使用专用管理员连接。
输入/输出选项
-i input_file[,input_file2...]
标识包含一批SQL 语句或存储过程的文件。可以指定要按顺序读取和处理的多个文件。文件名之间不要使用任何空格。
sqlcmd 将首先检查所有指定的文件是否都存在。如果有一个或多个文件不存在,sqlcmd将退出。-i 和-Q/-q 选项是互斥的。
路径示例:
-i C:\
-i \\
-i "C:\Some Folder\<文件名>"
包含空格的文件路径必须用引号引起来。
此选项可能不止使用一次:-i input_file -i I input_file.
-o output_file
标识从sqlcmd 接收输出的文件。
如果指定了-u,则output_file以Unicode 格式存储。如果文件名无效,将生成一个错误消息,并且sqlcmd将退出。sqlcmd不支持向同一文件并发写入多个sqlcmd
进程。文件输出将损坏或不正确。有关文件格式的详细信息,请参阅-f开关。如果此文件不存在,将创建此文件。
前一个sqlcmd会话中的同名文件将被覆盖。此处指定的文件不是stdout文件。如果指定了stdout文件,将不使用此文件。
路径示例:
-o C:\< 文件名>
-o \\<服务器>\
-o "C:\Some Folder\<文件名>"
包含空格的文件路径必须用引号引起来。
-f< codepage > | i: < codepage > [ <, o: < codepage > ]
指定输入和输出代码页。代码页页码是指定已安装的Windows 代码页的数值。有关详细信息,请参阅安装程序中的排序规则设置。
代码页转换规则:
如果未指定代码页,sqlcmd会将当前代码页同时用于输入文件和输出文件,除非输入文件为Unicode 文件,在此情况下无需进行转换。
sqlcmd自动识别Big-endian Unicode 和
Little-endian Unicode 输入文件。如果已指定-u选
项,输出将始终为Little-endian Unicode。
如果未指定输出文件,输出代码页将为控制台代码页。这将使输出正确显示在控制台上。
假定多个输入文件具有相同的代码页。可以将Unicode 和非Unicode 输入文件混合在一起。
在命令提示符处输入chcp以验证Cmd.exe 的代码页。
-u unicode output
指定无论input_file为何种格式,output_file都以Unicode 格式进行存储。
-r [ 0 | 1] msgs to stderr
将错误消息输出重定向到屏幕(stderr)。如果未指定参数或指定参数为0,则仅重定向严重级别为11 或更高的错误消息。如果指定参数为1,则将重定向所有消息输出(包括PRINT)。如果使用-o,将不起任何作用。默认情况下,消息将发送到stdout。
-R use client regional settings
设置SQL Server OLE DB 访问接口,使其在将货币、日期和时间数据转换为字符数据时使用客户端区域设置。默认为服务器区域设置。
查询执行选项
-q" cmdline query "
重要提示:
重要提示:
须是介于 1 和65535 之间的数字。如果提供的值不是数值或不在此范围内,则sqlcmd将生成错误消息。
注意实际的超时值可能会与指定的time_out值相差几秒。-v var=value[ var=value...]
创建可用于sqlcmd脚本中的sqlcmd 脚本变量。如果该值包含空格,则将其用引号引起来。可以指定多个
var="values"值。如果指定的任何值中有错误,
sqlcmd会生成错误消息,然后退出。
sqlcmd -v MyVar1=something MyVar2="some thing" sqlcmd -v MyVar1=something -v MyVar2="some thing"
-x disable variable substitution
导致sqlcmd忽略脚本变量。当脚本中包含多个INSERT 语句,并且这些语句可能包含格式与常规变量(如
$(variable_name))相同的字符串时,这一选项很有用。格式设置选项
-h headers
指定要在列标题之间输出的行数。默认为每一组查询结果输出一次标题。此选项设置sqlcmd脚本变量
SQLCMDHEADERS。使用-1指定不能输出标题。任何无效的值都将导致sqlcmd生成错误消息,然后退出。
-s col_separator
指定列分隔符字符。默认为空格。此选项设置sqlcmd脚本变量SQLCMDCOLSEP。若要使用对操作系统有特殊含义的字符,如“与”符号(&) 或分号(;),请将该字符用双引号(") 引起来。列分隔符可以是任意8 位字符。
-w column_width
指定用于输出的屏幕宽度。此选项设置sqlcmd脚本变量SQLCMDCOLWIDTH。该列宽必须是介于8 和65536 之间的数字。如果指定的列宽不在此范围内,则sqlcmd 将生成错误消息。默认宽度为80 个字符。在输出行超出指定的列宽时,将转到下一行。
-W remove trailing spaces
此选项删除列的尾随空格。在准备要导出到另一应用程序的数据时,请将此选项和-s选项结合使用。不能与-y或-Y 选项结合使用。
-k [ 1 | 2 ] remove[replace] control characters
删除输出中的所有控制字符,例如制表符和换行符。这会在返回数据时保留列格式。如果指定了1,则控制字符被一个空格替代。如果指定了2,则连续的控制字符被一个空格替代。
-y display_width
注意:
重要提示:
将不报告错误。命令提示符批处理文件可以测试
ERRORLEVEL 的值并适当处理错误。sqlcmd不对严重级别10 报告错误(信息性消息)。
如果sqlcmd脚本包含错误的注释、语法错误或缺少脚本变量,则返回的ERRORLEVEL 为1。
-V severitylevel
指定sqlcmd报告的最低严重级别。Transact-SQL 脚本中发生错误时,仅当严重级别大于或等于由-V开关指定的值时,才报告严重级别。如果严重级别低于该值,则报告0。默认错误级别为0。命令提示符批处理文件可以测试ERRORLEVEL 的值并适当处理错误。
-m error_level
自定义错误消息的显示。显示高于指定严重级别的错误的消息号、状态和错误级别。而不显示严重级别低于指定级别的错误的信息。用-1指定与消息一起返回所有标题,即使是信息性的消息。如果指定了-1,则在参数和设置之间不能有空格(例如,可以是-m-1,但不能是-m-1)。该选项设置sqlcmd脚本变量SQLCMDERRORLEVEL(其默认值为0)。
其他选项
-a packet_size
注意:
如果可选参数是除1之外的任何值,则将生成错误并且sqlcmd将退出。
-X [ 1 ] disable commands, startup script, enviroment variables [and exit]
从批处理文件执行sqlcmd时,将禁用可能危及系统安全的命令。禁用的命令仍然可以被识别;sqlcmd发出警告消息并继续。如果指定了可选参数1,则sqlcmd将生成错误消息,然后退出。使用-X选项时,将禁用以下命令:ED
!!command
如果指定-X选项,它会阻止将环境变量传递给sqlcmd。同时该选项还会阻止执行通过使用SQLCMDINI 脚本变量
指定的启动脚本。有关sqlcmd脚本变量的详细信息,请参阅将sqlcmd 与脚本变量结合使用。
-? show syntax summary
显示sqlcmd选项的语法摘要。
备注
不必按语法部分所示的顺序使用选项。