PRINT (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

ユーザー定義メッセージをクライアントに返します。

Transact-SQL 構文表記規則

構文

PRINT msg_str | @local_variable | string_expr  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

msg_str
文字列または Unicode 文字列の定数です。 詳細については、「定数 (Transact-SQL)」を参照してください。

@local_variable
任意の有効な文字型の変数を指定します。 @"local_variable" は、charncharvarchar、または nvarchar であるか、これらのデータ型に暗黙的に変換できる必要があります。

string_expr
文字列を返す式を指定します。 連結したリテラル値、関数、および変数を含むことができます。 詳細については、「式 (Transact-SQL)」を参照してください。

注釈

メッセージ文字列は、Unicode 以外の文字列の場合は 8,000 バイトまで指定でき、Unicode 文字列の場合は 4,000 バイトまで指定できます。 これより長い文字列は切り詰められます。 Varchar (max)nvarchar (max) データ型は、varchar(8000) および nvarchar(4000) ではなくなったデータ型に切り詰められます。

RAISERROR を使用してメッセージを返すこともできます。 RAISERROR には、PRINT にはない次のような利点があります。

  • RAISERROR は、エラー メッセージ文字列への引数の置き換えをサポートします。この置き換えでは、C 言語標準ライブラリの printf 関数をモデルにしたメカニズムを使用します。

  • RAISERROR では、テキスト メッセージに加えて、一意のエラー番号、重大度、および状態コードを指定できます。

  • RAISERROR は、sp_addmessage システム ストアド プロシージャを使用して作成したユーザー定義メッセージを返すために使用できます。

A. 条件付きで PRINT を実行する (IF EXISTS)

次の例では、PRINT ステートメントを使用して条件に応じてメッセージを返します。

IF @@OPTIONS & 512 <> 0  
    PRINT N'This user has SET NOCOUNT turned ON.';  
ELSE  
    PRINT N'This user has SET NOCOUNT turned OFF.';  
GO  

B. 文字列を構築して表示する

次の例では、GETDATE 関数の結果を nvarchar データ型に変換し、リテラル テキストと連結して PRINT で返します。

-- Build the message text by concatenating  
-- strings and expressions.  
PRINT N'This message was printed on '  
    + RTRIM(CAST(GETDATE() AS NVARCHAR(30)))  
    + N'.';  
GO  
-- This example shows building the message text  
-- in a variable and then passing it to PRINT.  
-- This was required in SQL Server 7.0 or earlier.  
DECLARE @PrintMessage NVARCHAR(50);  
SET @PrintMessage = N'This message was printed on '  
    + RTRIM(CAST(GETDATE() AS NVARCHAR(30)))  
    + N'.';  
PRINT @PrintMessage;  
GO  

例: Azure Synapse Analytics、Analytics Platform System (PDW)

C. 条件付きで PRINT を実行する

次の例では、PRINT ステートメントを使用して条件に応じてメッセージを返します。

IF DB_ID() = 1  
    PRINT N'The current database is master.';  
ELSE  
    PRINT N'The current database is not master.';  
GO  

参照

データ型 (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
RAISERROR (Transact-SQL)