簡體   English   中英

SQL Server禁用所有觸發器 - 找不到對象“XXXX”,因為它不存在或您沒有權限

[英]SQL Server Disabling All Triggers - Cannot find the object “XXXX” because it does not exist or you do not have permissions

我正在嘗試在SQL Server中運行此命令:

disable trigger all on MYDB

這對我來說是失敗的。 我登錄的帳戶可以訪問MYDB,我幾乎可以獲得每個可用的權限(它只是本地數據庫和我的帳戶,所以這沒關系)。 我不明白為什么它告訴我它找不到MYDB呢? 我之前做過這個。 另請注意:我可以從數據庫中進行選擇,更新並運行grant語句(例如授予proc的執行權限)。 我也可以手動禁用觸發器...

那為什么會失敗? 我之前能做到......

謝謝。

sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'

要啟用所有觸發器,可以使用以下語句

sp_msforeachtable 'ALTER TABLE ? ENABLE TRIGGER all'
use MYDB;
disable trigger all on DATABASE;

不確定為什么Yuck刪除了他們的答案。 來自DISABLE TRIGGER

object_name是要在其上創建DML觸發器trigger_name的表或視圖的名稱。

也就是說,您無法為此語句提供數據庫名稱。 雖然MYDB 數據庫存在,但其中沒有一個名為MYDB的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM