共用方式為


FORMATMESSAGE (Transact-SQL)

從 sys.messages 中現有的訊息建構訊息。 FORMATMESSAGE 的功能類似於 RAISERROR 陳述式的功能。 不過,RAISERROR 會立即列印訊息,FORMATMESSAGE 則會傳回格式化的訊息,以便進一步處理。

適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。

主題連結圖示 Transact-SQL 語法慣例

語法

FORMATMESSAGE ( msg_number , [ param_value [ ,...n ] ] )

引數

  • msg_number
    這是 sys.messages 中所儲存之訊息的識別碼。 如果 msg_number 是 <= 13000,或 sys.messages 中沒有這則訊息,就會傳回 NULL。

  • param_value
    這是訊息中所用的參數值。 它可以是多個參數值。 您必須依照預留位置變數在訊息中的出現順序來指定這些值。 最多可有 20 個值。

傳回類型

nvarchar

備註

如同 RAISERROR 陳述式,FORMATMESSAGE 會用所提供的參數值來替代訊息中的預留位置變數,以編輯訊息。 如需有關錯誤訊息所允許之預留位置及編輯處理的詳細資訊,請參閱<RAISERROR (Transact-SQL)>。

FORMATMESSAGE 會用使用者目前的語言來查閱訊息。 如果沒有當地語系化版本的訊息,就會使用 U.S. English 版本 。

如果是當地語系化的訊息,提供的參數值必須對應於 U.S. English 版本中的參數預留位置。 。 也就是說,當地語系化版本中的參數 1 必須對應於 U.S. English 版本中的參數 1, 參數 2 必須對應於參數 2,依此類推。

範例

下列範例會使用儲存在 sys.messages 中的複寫訊息 20009 做為「發行項 '%s' 無法加入到發行集 '%s' 中」。FORMATMESSAGE 會將 First Variable 和 Second Variable 這兩個值代入參數預留位置中。 產生的字串「發行項 'First Variable' 無法加入到發行集 'Second Variable' 中」會儲存在區域變數 @var1 中。

SELECT text FROM sys.messages WHERE message_id = 20009 AND language_id = 1033;
DECLARE @var1 VARCHAR(200); 
SELECT @var1 = FORMATMESSAGE(20009, 'First Variable', 'Second Variable'); 
SELECT @var1;

請參閱

參考

THROW (Transact-SQL)

sp_addmessage (Transact-SQL)

sys.messages (Transact-SQL)

系統函數 (Transact-SQL)

RAISERROR (Transact-SQL)