sqlcmd (转)

使用 sqlcmd 实用工具 (SQL Server Express)

您可以在命令提示符下使用 sqlcmd 实用工具来管理 Microsoft SQL Server 2008 Express (SQL Server Express) 数据库。若要访问 sqlcmd 使用工具,请依次单击“开始”“运行”,再键入 sqlcmd.exe。

SQLCMD 语法

当运行 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 命令

下表概述了可以在 sqlcmd 实用工具中使用的命令。有关这些命令的详细信息,请参阅 SQL Server 2008 联机丛书中的 sqlcmd 实用工具

命令说明

go [count]

执行任何缓存的 Transact-SQL 语句。在为 count 指定一个值时,缓存的语句会被作为单个批处理执行 count 次。例如,以下示例将对这两个语句执行两次:

1> Use MyDatabase
2> SELECT FirstName, LastName FROM Employee WHERE EmployeeID < 10
3> GO 2

-Nencrypt connection

此开关供客户端用于请求加密连接。此选项等同于 ADO.net 选项 ENCRYPT = true

-Ctrust the server certificate

该开关供客户端用于将其配置为隐式信任服务器证书且无需验证。此选项等同于 ADO.net 选项 TRUSTSERVERCERTIFICATE = true

reset

清除语句缓存。

ed

允许编辑当前或上一次执行的语句批处理。若要编辑上次执行的批处理,必须在上一批处理执行完之后立即键入该命令。

!! <命令>

执行操作系统命令。若要执行操作系统命令,请用两个感叹号 (!!) 开始一行,后面输入操作系统命令。例如,以下命令执行当前驱动器的目录清单:

1> !! dir

quit

-或-

exit

立即退出 sqlcmd

exit [(statement)]

允许使用 SELECT 语句的结果作为 sqlcmd 的返回值。

如果括号中没有任何内容,则 exit() 语句会执行批处理中该语句前的所有内容,然后退出,且不返回任何值。

也可以包含 exit 参数,使其作为批处理文件的一部分。例如:

sqlcmd /Q "exit(SELECT COUNT(*) FROM '%1')"

: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 服务器时,必须指定服务器名称,并且如果 SQL Server Express 安装在命名实例中,还必须指定实例名。默认情况下,sqlcmd 使用 Windows 身份验证。如果要使用 SQL Server 身份验证连接到 SQL Server Express 服务器,则还必须提供连接到 SQL Server Express 服务器所需的登录信息。例如,如果要连接到名为 server1 的服务器上的默认 SQL Server Express 安装,则可能使用下列参数:

sqlcmd -S server1/SQLExpress -U SqlUserAccount -P SqlPassword
ms165702.note(zh-cn,SQL.105).gif注意:
如果使用 -P 参数,则密码在命令提示符下以纯文本形式出现。如果省略 -P参数,则系统将提示您输入密码。您所输入的文本将会被隐藏。

如果使用运行 SQL Server Express 的服务器上受信任的用户帐户进行登录,则可以省略 -U-P 参数:

sqlcmd -S server1/SQLExpress
ms165702.note(zh-cn,SQL.105).gif注意:
-E 参数指定受信任连接。这是 sqlcmd 的默认设置,因此可以省略 -E参数。

示例

以下示例显示如何使用 sqlcmd 实用工具来连接到服务器 SqlServer1 上名为 SqlExpress 的 SQL Server Express 实例:

Sqlcmd -S SqlServer1/SqlExpress

连接之后,您可以发出其他命令来管理该实例。例如,下列命令将显示当前已安装的所有数据库。这样可以方便地找到已附加的 SQL Server Express 数据库的逻辑名称:

SELECT name from sys.databases
Go
sp_configure 系统存储过程

您可以使用 sp_configure 系统存储过程,通过配置各个选项来管理和优化 SQL Server Express 资源。有关 sp_configure 的详细信息,请参阅 SQL Server 联机丛书中的设置服务器配置选项

下列配置选项是 sp_configure 的一部分,但在 SQL Server Express 中不受支持:

  • 代理 XP
  • 数据库邮件 XP
  • SQL 邮件 XP
  • Web 助手过程
原文地址:https://www.cnblogs.com/qanholas/p/2671840.html