SQL Server 禁用所有触发器 - 找不到对象“XXXX”因为它不存在或您没有权限

发布于 2024-12-01 05:04:55 字数 282 浏览 0 评论 0原文

我正在尝试在 SQL Server 中运行此命令:

disable trigger all on MYDB

这对我来说失败了。我登录的帐户可以访问 MYDB,并且我几乎已经授予了它所有可用的权限(它只是本地数据库和我的帐户,所以这没问题)。我不明白为什么它告诉我找不到 MYDB?我以前做过这个。另请注意:我可以从数据库中进行选择、更新并运行授予语句(例如授予过程的执行)。我也可以手动禁用触发器...

那么为什么会失败呢?我以前能做到...

谢谢。

I'm trying to run this command in SQL Server:

disable trigger all on MYDB

This is failing for me. The account I'm logged into has access to MYDB and I've pretty much giving it every single permission available (it's a local DB and my account only, so this is OK). I don't understand why it's telling me it can't find MYDB for this? I've done this before. Also note: I can select from the database, update, and run a grant statement (such as granting execution of a proc). I can also disable triggers manually...

So why does this fail? I was able to do it before...

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

神也荒唐 2024-12-08 05:04:55
sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'

要启用所有触发器,您可以使用以下语句

sp_msforeachtable 'ALTER TABLE ? ENABLE TRIGGER all'
sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'

To enable all triggers, you can use following statement

sp_msforeachtable 'ALTER TABLE ? ENABLE TRIGGER all'
老街孤人 2024-12-08 05:04:55

对于 SQL 服务器:

DISABLE TRIGGER all ON Table_Name;
go
your code ...
go
ENABLE TRIGGER all ON Table_Name;

For sql server:

DISABLE TRIGGER all ON Table_Name;
go
your code ...
go
ENABLE TRIGGER all ON Table_Name;
岁月无声 2024-12-08 05:04:55

不知道为什么 Yuck 删除了他们的答案。来自禁用触发器

对象名称
是创建 DML 触发器触发器名称以执行的表或视图的名称。

也就是说,您不能为此语句提供数据库名称。虽然MYDB数据库存在,但其中有一个名为MYDB的对象。

Not sure why Yuck deleted their answer. From DISABLE TRIGGER:

object_name
Is the name of the table or view on which the DML trigger trigger_name was created to execute.

That is, you can't provide a database name to this statement. Whilst the MYDB database exists, there isn't an object within it called MYDB.

归属感 2024-12-08 05:04:55
use MYDB;
disable trigger all on DATABASE;
use MYDB;
disable trigger all on DATABASE;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文