Поделиться через


PRINT (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric

Возвращает клиенту пользовательское сообщение. Например, в СРЕДЕ SQL Server Management Studio PRINT выводится на вкладку "Сообщения" окна результатов запроса.

Соглашения о синтаксисе Transact-SQL

Синтаксис

PRINT msg_str | @local_variable | string_expr

Аргументы

msg_str

Символьная строка или константа строки Юникода. Дополнительные сведения см. в разделе Константы.

@local_variable

Переменная любого допустимого типа данных символов. @local_variable должен быть char, nchar, varchar или nvarchar, или он должен быть неявно преобразован в эти типы данных.

string_expr

Выражение, возвращающее строку. Может содержать объединенные буквенные значения, функции и переменные. Дополнительные сведения см. в разделе Выражения.

Замечания

Строка сообщения может быть длиной до 8000 символов, если это строка, отличной от Юникода, и 4000 символов, если это строка Юникода. Более длинные строки усекаются. Типы данных varchar(max) и nvarchar(max) усекаются до типов данных, которые не длиннее varchar(8000) и nvarchar(4000).

RAISERROR также можно использовать для возврата сообщений. RAISERROR имеет следующие преимущества по сравнению PRINTс :

  • RAISERROR поддерживает подстановку аргументов в строку сообщения об ошибке с помощью механизма, моделироваемого функцией printf стандартной библиотеки языка C.

  • RAISERROR может указать уникальный номер ошибки, серьезность и код состояния в дополнение к текстовому сообщению.

  • RAISERROR можно использовать для возврата пользовательских сообщений, созданных с помощью хранимой процедуры sp_addmessage (Transact-SQL ).

Примеры

А. Печать, выполняемая по условию (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.

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

В следующем примере показано создание текста сообщения в переменной.

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 и система платформы аналитики (PDW)

C. Условное выполнение печати

В следующем примере инструкция PRINT применяется для возвращения сообщения по условию.

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