首页 文章

将触发器从一个数据库复制到另一个

提问于
浏览
3

在MS SQL Server 2005中执行的脚本中,是否可以将触发器从一个数据库复制到另一个数据库?

我被要求为我的项目正在使用的触发器编写测试脚本 . 我们的测试结构是创建一个只包含被测对象的空数据库,然后在该数据库上执行一个脚本,创建测试所需的所有其他对象,填充它们,运行所需的任何测试,将结果与预期结果进行比较,然后删除除测试对象以外的所有内容 .

除了触发器,我不能只创建一个空的数据库,因为触发器依赖于几个表 . 我的测试脚本当前在创建所有必需的表之后运行CREATE TRIGGER,但这不会,因为不允许测试脚本包含被测对象 .

有人建议,不是运行CREATE TRIGGER,而是以某种方式将脚本中的触发器从实时数据库复制到测试数据库 . 我有一个快速的谷歌,并没有找到办法做到这一点 . 因此,我的问题 - 这甚至是可能的,如果是这样,我该怎么做呢?

1 回答

  • 2

    您可以使用 sp_helptext (triggername) 读取触发器的文本

    或者您可以将文本选择到变量中并执行:

    declare @sql varchar(8000)
    
    
    select @sql = object_definition(object_id) 
    from sys.triggers
    where name = 'testtrigger'
    
    EXEC @sql
    

相关问题