leo*_*ora 4 trigger sql-server
上周我遇到了一个问题,我们在 SQL Server 中重命名了一堆表,但它破坏了一堆触发器。我本来希望 SQL Server Mgmt Studio 足够聪明来更新这些触发器,但显然不是。是我期待太多了吗?有没有办法检测触发器引用不再存在的表(或列)的这些问题?
在 SSMS 中尝试以下操作..
CREATE TABLE [dbo].[T]
(
X INT
);
GO
CREATE TRIGGER [dbo].[TR]
ON [dbo].[T]
FOR INSERT
AS
SELECT *
FROM [dbo].[T]
Run Code Online (Sandbox Code Playgroud)
然后将表重命名为 T2 并编写触发器脚本返回以下内容,因此我假设您指的是第二个表引用。
CREATE TRIGGER [dbo].[TR]
ON [dbo].[T2]
FOR INSERT
AS
SELECT *
FROM [dbo].[T]
Run Code Online (Sandbox Code Playgroud)
如果您使用 SQL Server Data Tools 来管理您的数据库架构,而不是直接在 SSMS 中进行架构更改,那么这确实需要重命名重构。它不是 100% 全面的,因为您仍然需要查看动态 SQL 中的任何可能用法或外部脚本中对表的引用,但它可以解决上述问题。
归档时间: |
|
查看次数: |
160 次 |
最近记录: |