适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics Platform System (PDW)
sqlcmd 是一个命令行实用程序,用于 Transact-SQL (T-SQL) 语句和脚本的临时、交互执行以及自动执行 T-SQL 脚本撰写任务。 若要以交互方式使用 sqlcmd,或要生成用于 sqlcmd 的脚本文件,则须了解 T-SQL。 有多种方式可以使用 sqlcmd。 例如:
- 通过命令提示符输入 T-SQL 语句。 控制台会返回结果。 若要打开命令提示符窗口,请在 Windows 搜索框中输入 ,然后选择“命令提示符”将其打开。 在命令提示符处,键入 ,后面跟随所需的选项列表。 有关 sqlcmd 支持的选项的完整列表,请参阅 sqlcmd 实用工具。
- 通过下列方式提交 sqlcmd 作业:指定要执行的单个 T-SQL 语句,或将实用工具指向要执行的 T-SQL 语句所在的文本文件。 输出定向到一个文本文件,但也可能在命令提示符处显示。
- SQL Server Management Studio (SSMS) 查询编辑器中的 SQLCMD 模式。
- SQL Server 管理对象 (SMO)。
- SQL Server 代理 CmdExec 作业。
- 服务器选项 (),用于标识 sqlcmd 连接到的 SQL Server 实例。
- 身份验证选项(、 和 ),用于指定 sqlcmd 连接到 SQL Server 实例所使用的凭据。
- 输入选项(、 和 ),用于标识 sqlcmd 输入的位置 sqlcmd。
- 输出选项 (),用于指定 sqlcmd 输出所在的文件。
- 使用 Windows 身份验证连接到默认实例,以交互方式运行 T-SQL 语句:
- 使用 Windows 身份验证连接到命名实例,以交互方式运行 T-SQL 语句:
或
- 使用 Windows 身份验证连接到命名实例,并指定输入和输出文件:
- 使用 Windows 身份验证连接到本地计算机上的默认实例,执行查询,并在查询完成后让 sqlcmd 保持运行状态:
- 使用 Windows 身份验证连接到本地计算机上的默认实例,执行查询,将输出定向到某个文件,并在查询完成后退出 sqlcmd:
- 使用 SQL Server 身份验证连接到命名实例,以交互方式运行 T-SQL 语句,并由 sqlcmd 提示输入密码:
你可以使用 sqlcmd 实用工具以交互方式在命令提示符窗口中执行 T-SQL 语句。 若要使用 sqlcmd 以交互方式执行 Transact-SQL 语句,请在未使用 、、 或 选项指定任何输入文件或查询的情况下运行该实用工具。 例如:
在未指定输入文件或查询的情况下执行命令时,sqlcmd 连接到 SQL Server 的指定实例,然后显示一个新行,其中包含 并且后跟一个闪烁的下划线(称为 sqlcmd 提示符)。 表示这是 T-SQL 语句的第一行,而 sqlcmd 提示符则是你键入 T-SQL 语句的起点。
在 sqlcmd 提示符中,可以键入 T-SQL 语句和 sqlcmd 命令,如 和 。 每个 T-SQL 语句放置在称为“语句缓存”的缓冲区中。 键入 命令并按 Enter 键后,这些语句将发送到 SQL Server。 若要退出 sqlcmd,请在新行的开头键入 或 。
若要清除语句缓存,请键入 。 键入 Ctrl+C 可使 sqlcmd 退出。 在发出 Ctrl+C 命令后,还可以用 停止语句缓存的执行。
通过输入 命令和 sqlcmd 提示符,可以编辑交互式会话中输入的 Transact-SQL 语句。 编辑器将打开,编辑 T-SQL 语句并关闭编辑器后,修改后的 T-SQL 语句将显示在命令窗口中。 输入 以运行修改后的 T-SQL 语句。
用引号引起来的字符无需任何额外的预处理即可使用。例外,输入两个连续的引号可以将引号插入字符串中。 SQL Server 将这种字符序列视作一个引号。 (但在服务器上会进行转换。)当脚本变量出现在字符串中时,不会展开它们。
例如:
结果集如下。
sqlcmd 支持跨多行的字符串。 例如,下面的 语句跨多行,但键入 并按 Enter 键后,即会作为单个字符串执行。
本示例说明了以交互方式运行 sqlcmd 的过程。
打开命令提示符窗口时,出现如下一行内容:
这表示文件夹 为当前文件夹,如果你指定文件名,则 Windows 将在此文件夹中查找这个文件。
键入 sqlcmd 以连接到本地计算机上的 SQL Server 默认实例,命令提示符窗口内容将显示为:
这表示你已连接到 SQL Server 实例,并且 sqlcmd 现在已可以接受 T-SQL 语句和 sqlcmd 命令。 后闪烁的下划线是 sqlcmd 提示符,它标明了所键入语句和命令的显示位置。 现在,键入 并按 Enter 键,然后键入 并按 ENTER 键。 命令提示符窗口的内容如下:
结果集如下。
按下 Enter 时,它会向 sqlcmd 发出信号,启动新行。 键入 后按 Enter 键,即向 sqlcmd 发出信号将 语句发送到 SQL Server 实例。 sqlcmd 随后返回一条消息,指示 语句已成功完成并显示新的 提示符作为输入新语句或命令的信号。
下面的示例说明了键入 语句和 执行 以及键入 退出 sqlcmd 时命令提示符窗口包含的内容:
结果集如下。
生成输出后,sqlcmd 重置 sqlcmd 提示符并显示 。 若要结束会话,请在 提示符中键入 。 现在可以再键入一个 命令关闭命令提示符窗口。
你可以使用 sqlcmd (Go),在容器中创建 SQL Server 的新实例。 sqlcmd (Go) 暴露 语句,该语句允许指定容器映像和 SQL Server 备份,以便快速创建用于开发、调试和分析的 SQL Server 实例。
以下命令显示如何查看所有可用选项,以创建新的 SQL Server 容器:
以下命令通过使用最新版本的 SQL Server 2022 (16.x) 创建新的 SQL Server 实例,然后还原 Wide World Importers 示例数据库:
创建 SQL Server 实例后,可以使用 sqlcmd (Go) 来进行管理和查询。
以下命令可确认已创建的实例的版本:
以下命令可使用已创建的实例启动交互式会话:
以下命令可打开 Azure Data Studio,并自动连接到在创建过程中已还原的数据库:
以下命令可列出用于连接到已创建的实例的连接字符串:
以下命令用于在不再需要容器时将其移除:
可以使用 sqlcmd 执行数据库脚本文件。 脚本文件是一些文本文件,它们同时包含 T-SQL 语句、sqlcmd 命令和脚本变量。 有关如何使用脚本变量的详细信息,请参阅 将 sqlcmd 与脚本变量结合使用。 sqlcmd 与脚本文件中语句、命令和脚本变量的配合方式类似于它与交互输入的语句和命令的配合方式。 主要区别在于 sqlcmd 从输入文件连续读取内容,而不是等待用户输入语句、命令和脚本变量。
可以通过几种不同的方式创建数据库脚本文件:
- 可以在 SQL Server Management Studio 中以交互方式生成和调试一组 T-SQL 语句,然后将“查询”窗口中的内容另存为脚本文件。
- 可以使用记事本等文本编辑器创建包含 T-SQL 语句的文本文件。
启动记事本并键入以下 T-SQL 语句:
创建一个名为 的文件夹,然后将脚本另存为文件夹 中的文件 。 在命令提示符处输入以下命令运行脚本,并将输出放入 的 中:
结果集如下。
在下面的示例中,sqlcmd 通过专用管理员连接 (DAC) 连接到一台具有阻塞问题的服务器。
结果集如下。
使用 sqlcmd 结束阻塞进程。
下面的示例说明如何使用 sqlcmd 执行存储过程。 创建以下存储过程。
在 sqlcmd 提示符下,输入以下内容:
下面的示例说明了如何将 sqlcmd 用于数据库维护任务。 使用以下代码创建 。
在 sqlcmd 提示符下,输入以下代码:
某文件中的以下代码表示一个连接到两个实例的脚本。 请注意连接到第二个实例之前的 。
下面的示例说明了如何以连续流返回未格式化的 XML 输出。
在 .bat 文件中,sqlcmd 命令(如 )可以与 VBScript 一起执行。 此时,不要使用交互选项。 执行 .bat 文件的计算机上必须安装 sqlcmd。
首先,在 中创建以下四个文件:
- C:Tempbadscript.sql
- C:Tempgoodscript.sql
- C:Temp eturnvalue.sql
- C:Tempwindowsscript.bat
然后,在命令提示符处运行 :
可对与 SQL 数据库数据的连接执行 sqlcmd 以指定加密和证书信任。 有两个 sqlcmd 选项可供选择:
- 开关,客户端使用它来请求加密连接。 此选项等同于 ADO.net 选项 。
- 开关,客户端用来将其配置为隐式信任服务器证书且不对其进行验证。 此选项等同于 ADO.net 选项 。
SQL 数据库服务并不支持 SQL Server 实例上所有可用的 选项。 当将相应的 选项设置为 或 时,下面的选项将引发错误:
下面的 SET 选项虽然不会引发异常,但无法使用。 已将它们弃用:
语法
以下示例介绍了 SQL Server Native Client 访问接口设置包括的情况:
使用 Windows 凭据进行连接并对通信加密:
使用 Windows 凭据进行连接并信任服务器证书:
使用 Windows 凭据进行连接、对通信加密并信任服务器证书:
以下示例介绍了 SQL Server Native Client 访问接口设置包括的情况:
使用 Windows 凭据进行连接、对通信加密并信任服务器证书:
使用 Windows 凭据进行连接、对通信加密并信任服务器证书:
使用 Windows 凭据进行连接、对通信加密并信任服务器证书:
使用 Windows 凭据进行连接、对通信加密并信任服务器证书:
如果访问接口指定了 ,则启用加密,即使连接字符串中具有 。
- sqlcmd 实用工具
- sqlcmd - 与脚本变量结合使用
- 使用查询编辑器编辑 SQLCMD 脚本
- 管理作业步骤
- 创建 CmdExec 作业步骤
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sqlbc/14506.html