Abhängig von Ihren Anforderungen und den Berechtigungen des Kontos, unter dem Sie dieses Skript ausführen, können Sie möglicherweise DBCC OUTPUTBUFFER(@@spid)
verwenden .
Ich bin auf diese Idee gestoßen, als ich Erland Sommarskogs Fehlerbehandlungsartikel
las . Er verlinkt auf eine Prozedur spGET_ErrorMessage
.
Leider war das nicht ganz funktioniert in meinem Testskript auf SQL Server 2008, daher bin ich mir nicht sicher, ob sich das Pufferformat geändert hat, aber es könnte mit ein wenig Optimierung dorthin gelangen!
CREATE TABLE #foo
(
c INT DEFAULT(0)
)
ALTER TABLE #foo ALTER COLUMN c VARCHAR(10)
GO
EXEC spGET_LastErrorMessage
Tatsächliche Ausgabe
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.
Beanspruchte Ausgabe
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