午前 9 時 15 分から午後 6 時まで 15 分ごとに実行される SQL エージェント ジョブがあります。
DECLARE @db_name varchar(100)
DECLARE c_db_names CURSOR FOR
SELECT name
FROM sys.databases
WHERE name NOT IN
('VARIOUS DATABASES HERE')
TRUNCATE TABLE DBDATA.dbo.DATA
OPEN c_db_names
FETCH c_db_names INTO @db_name
WHILE @@Fetch_Status = 0
BEGIN
EXEC('
INSERT INTO DBDATA.dbo.DATA
SELECT
''' + @db_name + '''
,COUNT(*)
,MIN(datereq)
FROM ' + @db_name + '.dbo.TABLE
' + 'where lqdone = 0')
FETCH c_db_names INTO @db_name
END
CLOSE c_db_names
DEALLOCATE c_db_names
結果があれば、自分宛てにメールします。なんらかの理由で、過去 2、3 週間、SQL エージェントがジョブを開始する午前 9 時 15 分より前にそのクエリを実行できず、件名のエラー メッセージで失敗しました。次の試行はすべて問題なく機能します。手動で実行しようとすると、午前 9 時 15 分以前にのみ失敗します。本当に困惑し、ここで何が起こっているのかわかりません。
datereq フィールドは datetime、db_name は nchar です。チェックする11番目のデータベースで失敗しますが、テーブルをチェックしましたが、他のテーブルとまったく同じです。
何か案は?:)