表A
=================
id 字段名
1 ft1
2 ft2
表B
=================
/id ft1 ft2 ...
Create Trigger Tri_test On t1
After insert ,update, delete
As
Begin
Declare @new varchar(10),@old varchar(10),@s varchar(100)
Select @new=field From inserted
Select @old=field From deleted
--新增情况
IF Not Exists(Select 1 From syscolumns Where id=object_id(t2) and name=@new)
Begin
Set @s='Alter table t2 add '+@new+' varchar(10)'
exec(@s)
End
--更新情况
IF EXISTS(Select 1 From syscolumns Where id=object_id(t2) and name=@old)
Begin
Set @s='Alter table t2 alter column '+@new+' varchar(10)'
Exec(@s)
End
--删除
IF EXISTS(Select 1 From syscolumns Where id=object_id(t2) and name=@old)
Begin
Set @s='Alter table t2 drop column '+@old
Exec(@s)
End
End
本文介绍了一种使用触发器动态调整表结构的方法,包括字段的添加、修改和删除操作。通过示例展示了如何在不同情况下执行对应的ALTER TABLE语句。
1万+

被折叠的 条评论
为什么被折叠?



