Sql-Server
更新程式碼在手動儲存過程中有效,但在作為 SQL Server 代理作業執行時無效
我有一個儲存過程,它從現有表中刪除所有記錄,然後插入新記錄。插入後,我有幾個更新操作會更改一個欄位的值。
如果我執行 SQL Server 代理作業,則不會發生更新。如果我手動選擇並執行更新程式碼,則會發生更新。
如果我手動執行整個儲存過程,則會發生更新。
沒有錯誤被拋出;一切正常,但當我啟動 SQL Server 作業時不會發生更新。
我解決了這個問題 - 但不明白。
系統對每個Table都有一個View。我的 FOR XML PATH 視圖中使用了其中一個視圖。
我用無權限表代替了視圖,它可以工作。
該視圖具有公共 SELECT 權限。該表沒有命名權限。
我認為由於公共權限,SQL Server 代理作業應該能夠從視圖中選擇,但它不能。
如果我說得對,並且由於 sql server 代理作業保留的文本大小限制,作業沒有執行更新程式碼時我還目睹了:
因此,您可以嘗試限制通過 sql 代理作業返回的數據量,因為 SQL 代理的預設 TEXTSIZE 為 512。
您可以根據手動執行成功後獲得的輸出指定文本大小。
有關更多資訊,請參閱以下連結: