sqlcmd (转)
您可以在命令提示符下使用 sqlcmd 实用工具来管理 Microsoft SQL Server 2008 Express (SQL Server Express) 数据库。若要访问 sqlcmd 使用工具,请依次单击“开始”和“运行”,再键入 sqlcmd.exe。
当运行 sqlcmd 实用工具时,可以使用下列参数。有关特定参数的信息,请参阅 SQL Server 联机丛书中的 sqlcmd 实用工具和 教程:sqlcmd 实用工具。
Sqlcmd [-U login id] [-P password] [-S server] [-H hostname] [-E trusted connection] [-d use database name] [-l login timeout] [-N encrypt connection] [-C trust the server certificate] [-t query timeout] [-h headers] [-s colseparator] [-w screen width] [-a packetsize] [-e echo input] [-I Enable Quoted Identifiers] [-c cmdend] [-L[c] list servers[clean output]] [-q "cmdline query"] [-Q "cmdline query" and exit] [-m errorlevel] [-V severitylevel] [-W remove trailing spaces] [-u unicode output] [-r[0|1] msgs to stderr] [-i inputfile] [-o outputfile] [-f <codepage> | i:<codepage>[,o:<codepage>]] [-k[1|2] remove[replace] control characters] [-y variable length type display width] [-Y fixed length type display width] [-p[1] print statistics[colon format]] [-R use client regional setting] [-b On error batch abort] [-v var = "value"...] [-X[1] disable commands[and exit with warning]] [-? show syntax summary]
下表概述了可以在 sqlcmd 实用工具中使用的命令。有关这些命令的详细信息,请参阅 SQL Server 2008 联机丛书中的 sqlcmd 实用工具。
命令 | 说明 |
---|---|
go [count] |
执行任何缓存的 Transact-SQL 语句。在为 count 指定一个值时,缓存的语句会被作为单个批处理执行 count 次。例如,以下示例将对这两个语句执行两次: |
-Nencrypt connection |
此开关供客户端用于请求加密连接。此选项等同于 ADO.net 选项 |
-Ctrust the server certificate |
该开关供客户端用于将其配置为隐式信任服务器证书且无需验证。此选项等同于 ADO.net 选项 |
reset |
清除语句缓存。 |
ed |
允许编辑当前或上一次执行的语句批处理。若要编辑上次执行的批处理,必须在上一批处理执行完之后立即键入该命令。 |
!! <命令> |
执行操作系统命令。若要执行操作系统命令,请用两个感叹号 (!!) 开始一行,后面输入操作系统命令。例如,以下命令执行当前驱动器的目录清单: |
quit -或- exit |
立即退出 sqlcmd。 |
exit [(statement)] |
允许使用 SELECT 语句的结果作为 sqlcmd 的返回值。 如果括号中没有任何内容,则 exit() 语句会执行批处理中该语句前的所有内容,然后退出,且不返回任何值。 也可以包含 exit 参数,使其作为批处理文件的一部分。例如: |
:r <filename> |
将来自 filename 所指定文件的 Transact-SQL 语句和 sqlcmd 命令分析到语句缓存中。当发出批处理终止符 (go) 之后,将读取并执行该文件。 |
:serverlist |
列出在本地配置的服务器和在网络上进行广播的服务器的名称。 |
:list |
打印语句缓存的内容。 |
:listvar |
显示当前设置的脚本变量列表。 |
:error <destination>[ filename | STDERR | STDOUT] |
将所有错误输出重定向到 filename 指定的文件、STDERR 流或 STDOUT 流。默认情况下,错误输出将发送到 STDERR。 |
:out <destination>[ filename | STDERR | STDOUT ] |
将所有查询结果重定向到 filename 指定的文件、STDERR 流或 STDOUT 流。默认情况下,输出将发送到 STDOUT。 |
:perftrace <destination>[ filename | STDERR | STDOUT ] |
将所有性能跟踪信息重定向到 filename 指定的文件、STDERR 流或 STDOUT 流。默认情况下,性能跟踪输出将发送到 STDOUT。 |
:connect server_name[/instance_name] [-t timeout] [-U username [-P password] ] |
连接到 SQL Server 实例并关闭当前连接。 |
:on error [ exit | ignore ] |
设置在脚本或批处理执行过程中发生错误时要执行的操作。 使用 exit 选项时,sqlcmd 退出,并显示相应的错误值。 使用 ignore 选项时,sqlcmd 会忽略错误,并继续执行批处理或脚本。默认情况下,会打印错误消息。 |
:help |
列出 sqlcmd 命令以及每个命令的简短说明。 |
当连接到 SQL Server Express 服务器时,必须指定服务器名称,并且如果 SQL Server Express 安装在命名实例中,还必须指定实例名。默认情况下,sqlcmd 使用 Windows 身份验证。如果要使用 SQL Server 身份验证连接到 SQL Server Express 服务器,则还必须提供连接到 SQL Server Express 服务器所需的登录信息。例如,如果要连接到名为 server1 的服务器上的默认 SQL Server Express 安装,则可能使用下列参数:
![]() |
---|
如果使用 -P 参数,则密码在命令提示符下以纯文本形式出现。如果省略 -P参数,则系统将提示您输入密码。您所输入的文本将会被隐藏。
|
如果使用运行 SQL Server Express 的服务器上受信任的用户帐户进行登录,则可以省略 -U 和 -P 参数:
![]() |
---|
-E 参数指定受信任连接。这是 sqlcmd 的默认设置,因此可以省略 -E参数。
|
示例
您可以使用 sp_configure 系统存储过程,通过配置各个选项来管理和优化 SQL Server Express 资源。有关 sp_configure 的详细信息,请参阅 SQL Server 联机丛书中的设置服务器配置选项。
下列配置选项是 sp_configure 的一部分,但在 SQL Server Express 中不受支持:
- 代理 XP
- 数据库邮件 XP
- SQL 邮件 XP
- Web 助手过程