2017-04-10 67 views
0

我知道SQL Server能够生成有关数据库中表的元数据的脚本。我想知道是否有办法做到这一点,而不使用向导。是否可以使用存储过程写入txt文件或使用SSIS生成DDL命令。我只想要一些东西,所以我可以在一夜之间自动完成一项工作,所以不需要人工干预运行向导。如果在SQL Server管理工作室上使用命令或SSIS执行此操作的方法。在sql server中生成脚本生成为StoredProcedure或写入文本文件

谢谢

回答

0

你可以建立一个数据库触发器,保持在你的开发数据库中的任何改变的记录。 一个例子是这样的:tblDDLHistory的

create TRIGGER trDDLHistory ON DATABASE 
for CREATE_FUNCTION, ALTER_FUNCTION, DROP_FUNCTION, 
    CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE, 
    CREATE_TABLE, ALTER_TABLE, DROP_TABLE, 
    CREATE_TRIGGER, ALTER_TRIGGER, DROP_TRIGGER, 
    CREATE_VIEW, ALTER_VIEW, DROP_VIEW 
    -- there are more offcourse.. 
AS 
BEGIN 
    INSERT INTO tblDDLHistory(DDLHistory) 
    VALUES(convert(nvarchar(max), EVENTDATA())) 
END; 

例子是

CREATE TABLE [dbo].[tblDDLHistory] ( 
    [DDLHistoryID] INT  IDENTITY(1,1) NOT NULL, 
    [DDLDate]  DATETIME NOT NULL DEFAULT (getdate()), 
    [DDLHistory] XML  NULL, 
    CONSTRAINT [PK_DDLHistoryID] PRIMARY KEY (DDLHistoryID) 
) 

现在,你可以从这里所有的变化在生产数据库中使用。