分享方式:


使用 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 檔來確認這份輸出。