在 MS SQL Server 2005 中执行的脚本中,是否可以将触发器从一个数据库复制到另一个数据库?
我被要求为我的项目正在使用的触发器编写测试脚本。我们的测试结构是创建一个仅包含被测对象的空数据库,然后在该数据库上执行一个脚本,该脚本创建测试所需的所有其他对象,填充它们,运行所需的任何测试,将结果与预期结果进行比较,然后丢弃除被测对象之外的所有内容。
我不能只创建一个除了触发器之外为空的数据库,因为触发器依赖于几个表。我的测试脚本当前在创建所有必需的表后运行 CREATE TRIGGER,但这不会执行,因为测试脚本不允许包含被测对象。
建议是,我不运行 CREATE TRIGGER,而是以某种方式将脚本中那个点的触发器从实时数据库复制到测试数据库。我有一个快速的谷歌,但还没有找到一种方法来做到这一点。因此我的问题 - 这甚至可能吗,如果是这样,我该怎么做?
最佳答案
您可以使用 sp_helptext (triggername)
阅读触发器的文本。
或者您可以选择文本到一个变量中并执行:
declare @sql varchar(8000)
select @sql = object_definition(object_id)
from sys.triggers
where name = 'testtrigger'
EXEC @sql
关于sql - 将触发器从一个数据库复制到另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1807524/