PRINT の使用
アプリケーションにメッセージを返すには、PRINT ステートメントを使用します。PRINT は、文字式または Unicode 文字列式のいずれかをパラメーターとして受け取り、その文字列をメッセージとしてアプリケーションに返します。SQLClient 名前空間、または ADO (ActiveX Data Object)、OLE DB、および ODBC (Open Database Connectivity) アプリケーション プログラミング インターフェイス (API) を使用して、メッセージが情報エラーとしてアプリケーションに返されます。SQLSTATE は 01000 に、ネイティブ エラーは 0 に設定され、エラー メッセージ文字列は PRINT ステートメントに指定された文字列に設定されます。DB-Library アプリケーションではこの文字列がメッセージ ハンドラー コールバック関数に返されます。
PRINT ステートメントには、文字定数や Unicode 定数、文字や Unicode のローカル変数名、文字列や Unicode 文字列を返す関数など、任意の文字列式を指定できます。PRINT には複数の定数、ローカル変数、または関数を連結して作成した複合文字列も指定できます。
PRINT を使用して Transact-SQL コードのトラブルシューティングを行い、データ値を確認したりレポートを生成します。
次の例では、IF ステートメント内で PRINT を使用して、Hex Nut 17 製品の数が 1,100 未満まで減少したときにメッセージを返します。
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
次の例では、文字列を連結して出力メッセージを作成する 2 つの方法を示します。
-- 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