无法找到满足我需求的SQL diff工具,我正在编写自己的工具.在INFORMATION_SCHEMA和sys表之间,我有一个大部分完整的工作版本.但是我在元数据中找不到的一件事是触发器的定义,你知道,实际的SQL代码.我忽略了什么吗?
谢谢.
谢谢,皮特,我不知道那个!
斯科特,我正在使用非常基本的托管包,不允许远程连接到数据库.我不知道RedGate的规格(我无论如何都买不起)是否提供了解决方法,虽然还有API(例如来自Apex的API),我没有看到投资一个仍然需要我更多编程的解决方案.:)
我的解决方案是在网站上删除一个ASPX页面作为一种"模式服务",将收集的元数据作为XML返回.我设置了一个小的AJAX应用程序,可以将任意数量的目录实例与主数据库进行比较并显示差异.它并不完美,但对我来说是一个重大进步.
再次感谢!
sp_helptext用于获取构成触发器的sql.
syscomments视图中的text列还包含用于创建对象的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 = ''