代码之家  ›  专栏  ›  技术社区  ›  Rawling isekaijin

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

  •  3
  • Rawling isekaijin  · 技术社区  · 15 年前

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

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

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

    所建议的是,我不运行创建触发器,而是以某种方式将脚本中该点的触发器从活动数据库复制到测试数据库。我有一个快速的谷歌,还没有找到一个方法做到这一点。因此,我的问题是——这是否可能,如果可能,我如何才能做到?

    1 回复  |  直到 15 年前
        1
  •  2
  •   edosoft    15 年前

    你可以用 sp_helptext (triggername)

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

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