gpt4 book ai didi

c# - SqlCommand 不能删除触发器

转载 作者:行者123 更新时间:2023-11-30 14:27:43 26 4
gpt4 key购买 nike

我正在 .Net 中创建测试方法,需要更改数据库以设置测试场景。我们使用 SqlCommands 发送查询来更改数据库,为此连接字符串是受信任的连接字符串。所有 DROPS 和 ALTER 查询对于表、列、约束等都运行良好。但是当我尝试 DROP 触发器时,出现以下错误。

SQL EXCEPTION: 'Cannot drop the trigger 'dbo.TRIG_Application_Insert', because it does not exist or you do not have permission.'

查询是 DROP TRIGGER [dbo].[TRIG_Application_Insert] 它之所以有效,是因为它直接在 SQL Management Studio 中进行了测试,并且在将触发器添加到数据库的脚本中使用,这是通过 sqlcmd 工具调用的。

这可能是权限问题,还是在使用 .Net SqlCommand 时查询需要不同?

我已尝试为 sa 用户和具有高权限的 db 用户使用标准安全连接字符串,但仍然出现相同的错误。

最佳答案

由于您的 Initial Catalog 是 master,您的命令是针对 master 数据库运行的。你的触发器不在你的命令失败的那个数据库中。您需要将初始目录设置为要连接到的数据库,或者在命令中指定数据库。因此,如果您的数据库是 MyDatabase,请使用:

Data Source=(local)\SQLEXPRESS2012;Initial Catalog=MyDatabase;Integrated Security=True 

或者

DROP TRIGGER [MyDatabase].[dbo].[TRIG_Application_Insert]

关于c# - SqlCommand 不能删除触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31862572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com