根据您的需要以及您运行此脚本的帐户的权限,您也许可以使用DBCC OUTPUTBUFFER(@@spid)
.
我在阅读 Erland Sommarskog 的著作时想到了这个想法错误处理文章 http://www.sommarskog.se/error-handling-I.html#textretrieve。他链接到一个程序spGET_ErrorMessage http://pjondevelopment.50webs.com/articles/retrieveErrorMessage.htm.
不幸的是这没有quite虽然我在 SQL Server 2008 上的测试脚本中工作,所以我不确定缓冲区格式是否已更改,但可能需要进行一些调整才能实现!
CREATE TABLE #foo
(
c INT DEFAULT(0)
)
ALTER TABLE #foo ALTER COLUMN c VARCHAR(10)
GO
EXEC spGET_LastErrorMessage
实际产量
Msg 5074, Level 16, State 1, Line 2
The object 'DF__#foo___________c__6DCC4D03' is dependent on column 'c'.
Msg 4922, Level 16, State 9, Line 2
ALTER TABLE ALTER COLUMN c failed because one or more objects access this column.
声称的输出
errNumber errState errLevel errMessage errInstance errProcedure errLine
-------------------- ----------- ----------- ---------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------- --------------- -----------
5074 1 16 The object 'DF__#foo___________c__6DCC4D03' is dependent on column 'c'. MARTINHP NULL 2
4922 9 16 The object 'DF__#foo___________c__6DCC4D03' is dependent on column 'c'.ALTER TABL MARTINHP 䄀䰀吀䔀刀 䌀伀䰀唀䴀一 挀 昀愀椀氀攀搀 戀攀挀愀甀猀攀 漀渀攀 漀爀 洀漀爀攀 漀戀樀攀挀琀猀 愀挀挀攀猀猀 琀栀椀 NULL 117