Showing posts with label current_user. Show all posts
Showing posts with label current_user. Show all posts

Friday, February 17, 2012

Error handling/Error description (SQL2005)

Is there a better/simpler way than mine to get the error description in the
default_language of the current_user for a given message_id?
DECLARE @.ErrNo INT
SET @.ErrNo=21
SELECT [error description]=sys.messages.[text]
FROM sys.messages inner join sys.syslanguages ON language_id=msglangid,
sys.server_principals
WHERE sys.messages.message_id=@.ErrNo AND
sys.syslanguages.[name]=sys.server_principals.[default_language_name] AND
sys.server_principals.[name]=SYSTEM_USER
Thanks in advance.This is slightly shorter:
DECLARE @.ErrNo INT
SET @.ErrNo=21
SELECT m."text" AS "error description", *
FROM sys.messages AS m
INNER JOIN syslanguages AS l ON l.msglangid = m.language_id
WHERE m.message_id=@.ErrNo
AND l.langid = @.@.LANGID
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
"LX" <tsld99@.gmail.com> wrote in message news:%23tM15l5cGHA.3900@.TK2MSFTNGP05.phx.gbl...[co
lor=darkred]
> Is there a better/simpler way than mine to get the error description in th
e
> default_language of the current_user for a given message_id?
> DECLARE @.ErrNo INT
> SET @.ErrNo=21
> SELECT [error description]=sys.messages.[text]
> FROM sys.messages inner join sys.syslanguages ON language_id=msglangid,
> sys.server_principals
> WHERE sys.messages.message_id=@.ErrNo AND
> sys.syslanguages.[name]=sys.server_principals.[default_language_name] AND
> sys.server_principals.[name]=SYSTEM_USER
> Thanks in advance.
>
>[/color]