18 Mart 2009, ÇARŞAMBA
SQL Server veya bir SQL komut dosyası yürütme durdurma Ara
Bir şekilde hemen SQL server SQL komut dosyası yürütme durdurmak için, "" veya "" komut? çık aradan falan mı var
Ekler yapmaya başlamadan önce bazı doğrulama ve aramaları yapan bir komut dosyası var, ve eğer doğrulamalarını veya aramaları başarısız olursa durdurmak istiyorum.
CEVAP
29 NİSAN 2009, ÇARŞAMBA
raiserror yöntemi
raiserror('Oh no a fatal error', 20, -1) with log
Bu bağlantı, böylece çalışan senaryonun kalanı durdurma sonlandırılacak.
Bu ifadeler bile, örneğin çalışır.
print 'hi'
go
raiserror('Oh no a fatal error', 20, -1) with log
go
print 'ho'
Sana verecek çıktı:
hi
Msg 2745, Level 16, State 2, Line 1
Process ID 51 has raised user error 50000, severity 20. SQL Server is terminating this process.
Msg 50000, Level 20, State 1, Line 1
Oh no a fatal error
Msg 0, Level 20, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.
Dikkat edin 'ho' değil basılmış.
UYARILAR:
- Bu ise yönetici olarak (''rolü) sysadmin, ve de hiçbir veritabanı bağlantısı ile başbaşa bırakır. oturum gösterir.
- Eğer yönetici olarak oturum değilse, RAİSEERROR() çağrısı başarısız olurve komut dosyası yürütme devam edecektir.
- Sqlcmd.exe çıkış kodu ile çağrıldığında 2745 bildirdi.
Noexec yöntemi
İfadeleri ile çalışan bir başka yöntem set noexec on
. Bu senaryonun kalanı üzerinden atlanması neden olur. Bağlantı sona erdirmek değil, ama tüm komutları çalıştırır önce noexec
tekrar kapatmanız gerekir.
Örnek:
print 'hi'
go
print 'Fatal error, script will not continue!'
set noexec on
print 'ho'
go
-- last line of the script
set noexec off -- Turn execution back on; only needed in SSMS, so as to be able
-- to run this script again in the same session.
Bunu Paylaş:
SQL Server Yedekleme sürecini belirlem...
Durdurma, Web sitenize yüzlerce kez ça...
Dur ve toplu iş veya komut dosyası ara...
SQL Server günlüğü kesilemiyor komut d...
Nasıl saklı satır içeren varolan bir S...