使用 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 AdventureWorks;
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 AdventureWorks;
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