PRINT (Transact-SQL)
向用戶端傳回使用者自訂訊息。
適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。 |
語法
PRINT msg_str | @local_variable | string_expr
引數
msg_str
這是一個字元字串或 Unicode 字串常數。 如需詳細資訊,請參閱<常數 (Transact-SQL)>。@ local_variable
這是任何有效字元資料類型的變數。 **@**local_variable 必須是 char、nchar、varchar 或 nvarchar,或是必須可以隱含轉換成這些資料類型。string_expr
這是傳回字串的運算式。 它可以包括串連的常值、函數和變數。 如需詳細資訊,請參閱<運算式 (Transact-SQL)>。
備註
如果訊息字串不是 Unicode 字串,它的長度可以多達 8,000 個字元;如果它是 Unicode 字串,則可以多達 4,000 個字元。 較長字串會被截斷。 varchar(max) 和 nvarchar(max) 資料類型會被截斷為不大於 varchar(8000) 和 nvarchar(4000) 的資料類型。
RAISERROR 也可用來傳回訊息。 相較於 PRINT,RAISERROR 有下列優點:
RAISERROR 支援利用以 C 語言標準程式庫 printf 函數為基礎來建立型模的機制,將引數代入錯誤訊息中。
除了文字訊息之外,RAISERROR 還可以指定唯一錯誤號碼、嚴重性和狀態碼。
RAISERROR 可用來傳回利用 sp_addmessage 系統預存程序建立的使用者自訂訊息。
範例
A.有條件地執行列印 (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