将数据库中的所有对象编写到表中

时间:2009-09-30 15:05:30

标签: sql-server sql-server-2005 tsql

我需要在SQL Server 2005中填充一个表,其中包含特定数据库中的一些对象(存储过程,表,视图和函数等)

在表中我想要每个对象一行,表列将是对象的名称,对象的脚本,模式和对象类型。

我尝试使用下面的脚本,但这不会返回表的脚本。 有没有办法用脚本返回所有对象?

    select a.name, * 
from 
    Enterprise..sysobjects a 
    inner join Enterprise..syscomments b on a.id=b.id 
where
    a.xtype in ('FN','IF','P','TF','TR','U','V','X')

2 个答案:

答案 0 :(得分:1)

脚本表很难,请看这里:In MSSQL, how do I generate a CREATE TABLE statement for a given table?

您最好的选择是制作使用SMO生成脚本的CLR,请参阅:Scripting Database Objects using SMO

如果您只想跟踪数据库更改,可能需要DDL触发器来记录更改,请参阅:Using DDL Triggers to Manage SQL Server 2005

答案 1 :(得分:0)

如果您想要一个跟踪其他数据库中的更改的数据库(以及Web应用程序),dbscript可能有所帮助。 (免责声明:我写了;))