Returns a user-defined message to the client.
Applies to: SQL Server (SQL Server 2008 through current version), Azure SQL Database.
A message string can be up to 8,000 characters long if it is a non-Unicode string, and 4,000 characters long if it is a Unicode string. Longer strings are truncated. The varchar(max) and nvarchar(max) data types are truncated to data types that are no larger than varchar(8000) and nvarchar(4000).
RAISERROR can also be used to return messages. RAISERROR has these advantages over PRINT:
RAISERROR supports substituting arguments into an error message string using a mechanism modeled on the printf function of the C language standard library.
RAISERROR can specify a unique error number, a severity, and a state code in addition to the text message.
RAISERROR can be used to return user-defined messages created using the sp_addmessage system stored procedure.
A. Conditionally executing print (IF EXISTS)
The following example uses the PRINT statement to conditionally return a message.
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. Building and displaying a string
The following example converts the results of the GETDATE function to a nvarchar data type and concatenates it with literal text to be returned by 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