ورود

View Full Version : گفتگو: به دست آوردن شماره Error



mannai29
پنج شنبه 04 مهر 1387, 12:19 عصر
فرض کنيد در اثر اجراي دستور زير در Query Analyzer :

backup database DbTest to disk='F:\DbTest'
print @@error
Error هاي زير نمايش داده مي شود :

Server: Msg 3202, Level 16, State 1, Line 1
Write on 'F:\DbTest' failed, status = 112. See the SQL Server error log for more details.
Server: Msg 3013, Level 16, State 1, Line 1
BACKUP DATABASE is terminating abnormally.
3013

شماره Error اول 3202 و دوم 3013 است.
چگونه ميتوانم شماره Error اول را در ادامه کار ، با دستورات T-Sql بدست آورم؟
ضمن آنکه @@error شماره Error دوم را باز ميگرداند.

AminSobati
پنج شنبه 04 مهر 1387, 20:20 عصر
امیدوارم مفید باشه:
http://www.eggheadcafe.com/software/aspnet/31646140/backup-error-message.aspx

mannai29
شنبه 06 مهر 1387, 11:14 صبح
ممنون آقای ثباتی ولی جواب پرسش اونجا نبود.
چیزی که مورد انتظار من هست اینه که
1: بدست آوردن شماره error اول تنها در محیط T-SQL باشد.
2: کاربر در آن دخالتی نداشته باشد.
ضمن آنکه ریشه error یک error مربوط OS می باشد :

Server: Msg 3202, Level 16, State 1, Line 1
Write on 'F:\DbTest' failed, status = 112. See the SQL Server error log for more details.
Server: Msg 3013, Level 16, State 1, Line 1
BACKUP DATABASE is terminating abnormally.
3013
یعنی عدد 112 در خط دوم که می گوید :
There is not enough space on the disk.
بنابراین من به هر روشی برای بدست آوردن این 3 عدد 3202،3013،112 نیازمندم.
مثلا ثبت نتیجه ی قسمت Result در یک رشته توسط یک دستور !!!

AminSobati
شنبه 06 مهر 1387, 19:26 عصر
متوجه نیاز شما هستم. متاسفانه راه ایده آلی سراغ ندارم