language_id を指定しないと英語など、全ての言語のメッセージ一覧が取得できます。
SELECT *
FROM sys.messages
language_id を指定すると、指定した言語のメッセージ一覧が取得できます。
SELECT *
FROM sys.messages
WHERE language_id = 1041
さらに message_id を指定すると対象のメッセージ内容を取得できます。
SELECT *
FROM sys.messages
WHERE language_id = 1041
AND message_id = 2627
.NET でアプリを開発している場合は try - catch で SqlException をキャッチして message_id に応じた例外処理も可能です。
try
{
// 処理
}
catch (SqlException ex)
{
if (ex.Number == 2627)
{
// キー重複
}
}
■参考リンク
sys.messages (Transact-SQL) - MSDN
■環境
OS:Microsoft Windows XP Home Edition 日本語 ServicePack 3
DB:Microsoft SQL Server 2005 Express Edition Service Pack 4 (9.00.5000.00)
DB管理ツール:Microsoft SQL Server Management Studio Express (9.00.3042.00)