Sql server 2008 我可以在SQLServer2008中编写DDL触发器来根据列名自动创建键吗?
我从未编写过DDL触发器,但我的理解是,它们在模式更改时运行SQL。我希望简化重复性任务。我不确定它们是否真的只是为了审计目的而设计的Sql server 2008 我可以在SQLServer2008中编写DDL触发器来根据列名自动创建键吗?,sql-server-2008,triggers,ddl,Sql Server 2008,Triggers,Ddl,我从未编写过DDL触发器,但我的理解是,它们在模式更改时运行SQL。我希望简化重复性任务。我不确定它们是否真的只是为了审计目的而设计的 对于第一个序号位置的整型字段[id]: 让它成为主键 将标识种子/增量设置为1 对于第二顺序位置的varchar字段[name]: 让它成为唯一的钥匙 基本上,问题是:SQLServer2008中的DDL触发器是否与我想要做的事情很匹配?(而且,如果您已经这样做了,并且sql代码就在那里,您可以粘贴它吗?没有DDL触发器与您想要执行的操作不匹配 DD
- 对于第一个序号位置的整型字段[id]:
- 让它成为主键
- 将标识种子/增量设置为1
- 对于第二顺序位置的varchar字段[name]:
- 让它成为唯一的钥匙
基本上,问题是:SQLServer2008中的DDL触发器是否与我想要做的事情很匹配?(而且,如果您已经这样做了,并且sql代码就在那里,您可以粘贴它吗?没有DDL触发器与您想要执行的操作不匹配 DDL触发器在已经创建表之后运行 列不能添加
identity
属性,这意味着您的触发器需要使用动态SQL立即删除新创建的表并重新创建它
即使假设这只是一个个人项目,您也不必担心其他开发人员会感到意外,也不必担心生成create
脚本的效率低下,但无论您是从零开始还是从解析CommandText
作为起点,都很难稳健地完成
如果这是一种常见的模式,那么您可能需要研究在SSMS的模板资源管理器中创建自定义的
创建表模板。当答案对我有帮助时,我会尝试接受;如果每个人都做得对的话,那会保持质量吗?不过我还是要看一看,因为我想公平一点。谢谢你的提示。动态sql是指生成tsql字符串还是向信息架构视图插入行?动态sql涉及生成tsql字符串,您不能通过修改这些视图来更改表结构。