tracking_table
聲明爲日誌表如下:「WHEN OTHERS THEN NULL」 在SQL Server 2005中
create table tracking_table (my_command nvarchar(500), my_date datetime);
請假設你有SQL Server的以下塊2005代碼,SQL Server 2005的工作中聲明:
DECLARE @my_statement NVARCHAR(500)
delete from tracking_table
SET @my_statement = 'ALTER INDEX ALL ON my_user.dbo.my_fact_table REBUILD WITH (FILLFACTOR = 90)'
insert into tracking_table values (@my_statement,getdate())
EXEC (@my_statement)
SET @my_statement = 'ALTER INDEX ALL ON my_user.dbo.my_second_table REBUILD WITH (FILLFACTOR = 90)'
insert into tracking_table (@my_statement,getdate())
EXEC (@my_statement)
在運行時,如果第一個語句(ALTER INDEX ALL ON my_user.dbo.my_fact_table REBUILD WITH (FILLFACTOR=90)
)失敗,它作用於my_second表中的第二語句將不會被執行。
我想知道如何修改SQL Server 2005代碼,以便跳過任何錯誤,前進(在Oracle中我會說,WHEN OTHERS THEN NULL
)。
我怎麼能做到這一點?
非常感謝您的幫助。
您可以將每個語句放入其自己的作業步驟中,然後定義如果發生故障時要對每個步驟執行的操作(停止執行,通過電子郵件通知,繼續等等) –
我不得不只使用一個內部所有代碼的作業步驟。 – UltraCommit