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


PRINT (Transact-SQL)

Возвращает клиенту пользовательское сообщение.

Значок ссылки на разделСоглашения о синтаксическом обозначении в Transact-SQL

Синтаксис

PRINT msg_str | @local_variable | string_expr

Аргументы

  • msg_str
    Символьная строка или строковая константа Юникода. Дополнительные сведения см. в разделе Константы (Transact-SQL).

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

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

Замечания

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

Сведения об обработке приложениями сообщений, возвращаемых инструкцией PRINT, см. в разделе Обработка ошибок и сообщений в приложениях.

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

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

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

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

Примеры

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

Б. Построение и отображение строки

В следующем примере результаты функции 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