【发布时间】:2010-01-01 07:10:34
【问题描述】:
禁用触发器是否算作 SQL Server 中的架构更改?我收到错误消息:“无法完成游标操作,因为表架构已更改”
我有一个存储过程 p_DeleteA,它从表 A 中删除一行,并从表 B 中删除它的所有子记录;但是,随着表 B 中的一行被删除,表 C、D 和 E 中的孙记录也被删除。以上是通过游标围绕AId = xyz的表B,然后调用p_DeleteB,删除C、D、E记录,然后是B。
在开发数据库中,该过程运行良好。但是在构建环境中会发生上述错误。我唯一可以认为是“架构更改”的事情是触发器被禁用以避免在表 B 上相互踩踏。禁用触发器算作架构更改吗?如果不是,假设我没有在中间更改架构,可能会导致错误消息。我读到的 Autoshrink 可能会导致此错误,已关闭。
编辑:我正在模拟级联删除,但我正在手动删除所有记录。
开发环境版本:9.00.4035.00
构建环境版本:9.00.1399.00
【问题讨论】:
标签: sql-server sql-server-2005 tsql