我有一個小腳本用於重建索引並更新SQL Server 2014數據庫中的統計信息。
當我在MSSM中執行它時,它運行良好,因此我想將它放入每天晚上運行的工作中。tsql在MSSM中運行良好,但在將其放入作業時失敗
我用這個鏈接來創建工作:
how to schedule a job for sql query to run daily?
,這是我在步驟1中的腳本:
declare @command nvarchar(1000)
DECLARE @TableName varchar(255)
DECLARE TableCursor CURSOR FOR
SELECT table_name
FROM information_schema.tables
WHERE table_type = 'base table'
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
set @command = 'alter index all on ' + @TableName + ' rebuild'
exec sp_executesql @command
set @command = 'update statistics ' + @TableName
exec sp_executesql @command
FETCH NEXT FROM TableCursor INTO @TableName
END
CLOSE TableCursor
DEALLOCATE TableCursor
,這是我在步驟2中的腳本:
insert into tblLog values (getdate(), 0, 'sql agent job rebuild index', 'indexes rebuild')
當我嘗試Start Job at Step
它失敗,但是在步驟1的歷史記錄中顯示此消息:
以用戶身份執行:NT SERVICE \ SQLAgent $ GTT_192。 ALTER INDEX失敗 ,因爲以下SET選項具有不正確的設置: 'QUOTED_IDENTIFIER'。驗證SET選項是否適用於 索引視圖和/或索引計算列和/或過濾索引和/或查詢通知和/或XML數據類型方法和/或 空間索引操作。 [SQLSTATE 42000](錯誤1934)。步驟 失敗。
我不知道這個設置QUOTED_IDENTIFIER來自哪裏。
那麼,爲什麼它運行在MSSM而不是在工作中?
更重要的是,我能做些什麼才能使它工作?
那麼簡單,它的工作謝謝 – GuidoG