使用 PRINT

PRINT 陳述式是用於傳回訊息至應用程式。PRINT 接受字元或 Unicode 字串運算式作為參數,將字串作為訊息傳回給應用程式。使用 SQLClient 命名空間或 ActiveX Data Objects (ADO)、OLE DB 和開放式資料庫連接 (Open Database Connectivity,ODBC) 應用程式開發介面 ( API),將提供錯誤資訊的訊息傳回給應用程式。SQLSTATE 設定為 01000,原生錯誤設定為 0,而錯誤訊息字串設定為 PRINT 陳述式中指定的字元字串。字串會傳回給 DB-Library 應用程式中的訊息處理常式回呼函數。

PRINT 陳述式可接受任何字元字串運算式,包括字元或 Unicode 常數、字元或 Unicode 區域變數名稱,以及傳回字元或 Unicode 字串的函數。PRINT 也接受二或多個常數、本機變數或函數連結而成的複雜字串。

使用 PRINT 進行 Transact-SQL 程式碼的疑難排解、檢查資料的值或產生報表。

以下範例在 IF 陳述式內使用 PRINT,如果 Hex Nut 17 產品數目低於 1100 時,則傳回訊息。

USE AdventureWorks2008R2;
GO
IF (SELECT SUM(i.Quantity)
    FROM Production.ProductInventory i
    JOIN Production.Product p 
    ON i.ProductID = p.ProductID
    WHERE Name = 'Hex Nut 17'
    ) < 1100
    PRINT N'There are less than 1100 units of Hex Nut 17 in stock.'
GO

以下範例會列出本機變數、系統函數和連接文字字串的組合。

USE AdventureWorks2008R2;
GO
DECLARE @MyObject NVARCHAR(257);

SET @MyObject = N'Production.Product';

PRINT N'Object Name: ' + @MyObject
PRINT N'   Object ID: ' + STR(OBJECT_ID(@MyObject))
GO

以下範例示範兩種透過連接字串來建立列印訊息的方式。

-- Build a print message by concatenating strings in a PRINT
-- statement.
PRINT N'The Database Engine instance '
    + RTRIM(@@SERVERNAME)
    + N' is running SQL Server build '
    + RTRIM(CAST(SERVERPROPERTY(N'ProductVersion ') AS NVARCHAR(128)));
GO
-- This shows building a character variable that is used to
-- print a message.
DECLARE @Msg NVARCHAR(300);

SELECT @Msg = N'The Database Engine instance '
    + RTRIM(@@SERVERNAME)
    + N' is running SQL Server build '
    + RTRIM(CAST(SERVERPROPERTY(N'ProductVersion') AS NVARCHAR(128)));

PRINT @Msg;
GO