无法找到一个SQL差异的工具,满足我的要求我写我自己。之间的信息和系统表,我有一个大部分完成工作版本。但有一件事我可以找不到的元数据,是的 定义 一个触发的,你知道,实际SQL代码。我俯瞰着的东西吗?

谢谢。


谢谢,皮特,我不知道!

斯科特,我的工作非常基本主持的包裹,不允许远程连接的数据库。我不知道,从前在展鹏(我可以负担不起无论如何)是否提供一个解决办法,虽然也有API有(例如一个从顶点),我没有看到在投资于一个解决方案,仍然需要更多的编程在我的一部分。:)

我的解决方案是降ASPX页在网站上,作为一种"模式服务",回该收集的元数据作为XML。我设置了一个小小的AJAX应用程序,进行比较的任何数量目录的实例主和显示出的差异.它是不完美的,但是向前迈进的一大步,对我来说。

再次感谢!

有帮助吗?

解决方案

sp_helptext工作得到sql,构成了一个触发器。

该案文列在syscomments视也包含sql用于对象的创造。

其他提示

2005年和2008年可以使用 OBJECT_DEFINITION() 功能

SELECT     
    DB_NAME() AS DataBaseName,                  
    dbo.SysObjects.Name AS TriggerName,
    dbo.sysComments.Text AS SqlContent
FROM 
    dbo.SysObjects INNER JOIN 
        dbo.sysComments ON 
        dbo.SysObjects.ID = dbo.sysComments.ID
WHERE   
    (dbo.SysObjects.xType = 'TR') 
    AND 
    dbo.SysObjects.Name = '<YourTriggerName>'

扩大SQLMenace的答案,这是一个简单的查询,以返回所有的触发器及其定义来自一个数据库:

SELECT 
    sysobjects.name AS trigger_name, 
    OBJECT_NAME(parent_obj) AS table_name,
    OBJECT_DEFINITION(id) AS trigger_definition
FROM sysobjects 
WHERE sysobjects.type = 'TR' 

这个查询返回触发其姓名和身体。

Select 
    [tgr].[name] as [trigger name], 
    [tbl].[name] as [table name] , 
    OBJECT_DEFINITION(tgr.id) body

    from sysobjects tgr 

    join sysobjects tbl
    on tgr.parent_obj = tbl.id

WHERE tgr.xtype = 'TR'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top