tracking_table
は、次のように宣言されたログ テーブルです。
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 テーブルに作用する 2 番目のステートメントは実行されません。
今後、エラーをスキップするために、SQL Server 2005 コードを変更する方法を知りたいです (Oracle では、と言うでしょうWHEN OTHERS THEN NULL
)。
どうすればこれを達成できますか?
よろしくお願いいたします。