2017-04-10 81 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) 
) 

現在,你可以從這裏所有的變化在生產數據庫中使用。