Freigeben über


PRINT (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Gibt eine benutzerdefinierte Meldung an den Client zurück. Beispielsweise wird in SQL Server Management Studio PRINT auf der Registerkarte "Nachrichten" des Abfrageergebnisfensters ausgegeben.

Transact-SQL-Syntaxkonventionen

Syntax

PRINT msg_str | @local_variable | string_expr

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

msg_str

Eine Zeichenfolge oder Unicode-Zeichenfolgenkonstante. Weitere Informationen finden Sie unter Konstanten.

@local_variable

Eine Variable eines beliebigen gültigen Zeichendatentyps. @local_variable muss char, nchar, varchar oder nvarchar sein, oder sie muss implizit in diese Datentypen konvertiert werden können.

string_expr

Ein Ausdruck, der eine Zeichenfolge zurückgibt. Er kann verkettete Literalwerte, Funktionen und Variablen enthalten. Weitere Informationen finden Sie unter Ausdrücke.

Hinweise

Eine Nachrichtenzeichenfolge kann bis zu 8.000 Zeichen lang sein, wenn es sich um eine Nicht-Unicode-Zeichenfolge handelt, und 4.000 Zeichen lang, wenn es sich um eine Unicode-Zeichenfolge handelt. Längere Zeichenfolgen werden abgeschnitten. Die Datentypenvarchar(max) und nvarchar(max) werden abgeschnitten und ergeben Datentypen, die nicht größer sind als varchar(8000) und nvarchar(4000).

RAISERROR kann auch zum Zurückgeben von Nachrichten verwendet werden. RAISERROR hat diese Vorteile gegenüber PRINT:

  • RAISERROR unterstützt das Substituieren von Argumenten in eine Fehlermeldungszeichenfolge mithilfe eines Mechanismus, der in der Printf-Funktion der C-Sprachstandardbibliothek modelliert ist.

  • RAISERROR kann zusätzlich zur Textnachricht eine eindeutige Fehlernummer, einen Schweregrad und einen Statuscode angeben.

  • RAISERROR kann verwendet werden, um benutzerdefinierte Nachrichten zurückzugeben, die mithilfe der gespeicherten sp_addmessage -Systemprozedur (Transact-SQL) erstellt wurden.

Beispiele

A. Bedingt ausgeführte PRINT-Anweisung (IF EXISTS)

Das folgende Beispiel verwendet die PRINT-Anweisung zur bedingten Rückgabe einer Meldung.

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. Erstellen und Anzeigen einer Zeichenfolge

Im folgenden Beispiel werden die Ergebnisse der GETDATE-Funktion in einen nvarchar-Datentyp konvertiert und mit Literaltext verkettet, der von PRINT.

PRINT N'This message was printed on ' + RTRIM(CAST(GETDATE() AS NVARCHAR(30))) + N'.';
GO

Das folgende Beispiel zeigt das Erstellen des Nachrichtentexts in einer Variablen.

DECLARE @PrintMessage NVARCHAR(50);
SET @PrintMessage = N'This message was printed on ' + RTRIM(CAST(GETDATE() AS NVARCHAR(30))) + N'.';
PRINT @PrintMessage;
GO

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

C. Bedingter Druck

Das folgende Beispiel verwendet die PRINT-Anweisung zur bedingten Rückgabe einer Meldung.

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