我如何在SQL SERVER 2008中获取所有对象的ddl,如表,触发器,过程等

时间:2015-12-04 11:39:53

标签: sql-server ddl

我已经创建了一个示例程序,其中我使用get_ddl方法得到了所有对象的ddl,如table,trigger等: -

SELECT DBMS_METADATA.GET_DDL('TABLE', TABLE_NAME) FROM USER_TABLES;
SELECT DBMS_METADATA.GET_DDL('TRIGGER', TRIGGER_NAME) FROM USER_TRIGGERS;
SELECT DBMS_METADATA.GET_DDL('VIEW', VIEW_NAME) FROM USER_VIEWS;
SELECT DBMS_METADATA.GET_DDL('FUNCTION', OBJECT_NAME) FROM USER_PROCEDURES WHERE OBJECT_TYPE = 'FUNCTION';
SELECT DBMS_METADATA.GET_DDL('PROCEDURE', OBJECT_NAME) FROM USER_PROCEDURES WHERE OBJECT_TYPE = 'PROCEDURE';
SELECT DBMS_METADATA.GET_DDL('INDEX', INDEX_NAME) FROM USER_INDEXES ;

现在我正在尝试为sql server创建相同的示例来获取所有对象的ddl,所以我想知道sql server 2008是否支持get_ddl方法,或者还有其他任何工具来创建所有对象的ddl。请帮助如何做到这一点。

1 个答案:

答案 0 :(得分:0)

用于源对象 -

SELECT OBJECT_SCHEMA_NAME([object_id]), OBJECT_NAME([object_id]), [definition]
FROM sys.sql_modules

表格,索引等 -

http://www.c-sharpcorner.com/uploadfile/67b45a/how-to-generate-a-create-table-script-for-an-existing-table/