使用 sqlcmd 从脚本文件执行 T-SQL

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)

使用 sqlcmd 来运行 Transact-SQL 脚本文件。 Transact-SQL 脚本文件是一个文本文件,它可以包含 Transact-SQL 语句、 sqlcmd 命令以及脚本变量的组合。

创建脚本文件

假设已经安装了 AdventureWorks2022 示例数据库,请按照本部分中的示例创建一个脚本文件,可以使用 sqlcmd 从命令提示符运行该文件。

若要使用记事本创建 Transact-SQL 脚本文件,请执行下列操作:

  1. 选择“开始”,依次指向“所有程序”、“附件”,再选择“记事本”。

  2. 复制以下 Transact-SQL 代码并将其粘贴到记事本:

    USE AdventureWorks2022;
    GO
    SELECT p.FirstName + ' ' + p.LastName AS 'Employee Name',
    a.AddressLine1, a.AddressLine2 , a.City, a.PostalCode
    FROM Person.Person AS p
       INNER JOIN HumanResources.Employee AS e
            ON p.BusinessEntityID = e.BusinessEntityID
        INNER JOIN Person.BusinessEntityAddress bea
            ON bea.BusinessEntityID = e.BusinessEntityID
        INNER JOIN Person.Address AS a
            ON a.AddressID = bea.AddressID;
    GO
    
  3. 将文件以 myScript.sql 格式保存在文件夹中,例如 C:\scripts 驱动器。

运行脚本文件

  1. 打开命令提示符窗口。

  2. 在命令提示符窗口中,键入:sqlcmd -S myServer\instanceName -i C:\scripts\myScript.sql

  3. 按 Enter。

Adventure Works 员工的姓名和地址列表便会输出到命令提示符窗口。

将输出保存到文本文件中

  1. 打开命令提示符窗口。

  2. 在命令提示符窗口中,键入:sqlcmd -S myServer\instanceName -i C:\scripts\myScript.sql -o C:\EmpAdds.txt

  3. 按 Enter。

命令提示符窗口中不会返回任何输出, 而是将输出发送到 EmpAdds.txt 文件。 您可以打开 EmpAdds.txt 文件来查看此输出操作。