problemer med afvikling af kode i et sqlserver job
Jeg har et problem med følgende kode:print 'Kontrollere databasens tilstand'
alter database cherry set single_user with no_wait
set @checkdb = @@error
if @checkdb > 0
begin
print 'Der er brugere i databasen, fortsætter uden kontrol af databasen'
end
else
begin
dbcc checkdb ('cherry', REPAIR_REBUILD) with NO_INFOMSGS
if @@error > 0
begin
set @fejl = @@error
print 'Databasen er blevet markeret dårlig af systemet... der vil IKKE blive taget nogen backup'
ALTER DATABASE cherry SET MULTI_USER
return
end
else
begin
print ' databasen er blevet kontrolleret og er fundet fejlfri '
ALTER DATABASE uniksys SET MULTI_USER
end
end
!! herefter fortsætter koden!!
Fyre jeg dette af i qa, så fungere det perfekt. Er der noget der hænge databasen op, så kommer den med følgende svar :
"Server: Msg 5070, Level 16, State 2, Line 31
Database state cannot be changed while other users are using the database 'uniksys'
Server: Msg 5069, Level 16, State 1, Line 31
ALTER DATABASE statement failed."
og fortsætter med at skrive mine print statements ud, og fortsætter med at afvikle koden.
smidder jeg så alt dette ind i en sp, og laver et enkelt job, som skal afvikle det, så når den får samme svar som beskrevet oppe over (msg 5069 & 5070), så terminere den, og afvikler ikke mere kode. her ville jeg gerne have at den fortsatte lige som den gør i qa.
Ville være fantastisk hvis der var nogen som kunne hjælpe..
