我知道SQL服务器能够生成有关数据库中表的元数据的脚本。我想知道是否有办法在不使用向导的情况下执行此操作。是否可以使用存储过程写入txt文件或使用SSIS生成DDL命令。我只想要一些东西,所以我可以在一夜之间自动完成工作,所以没有人工干预运行向导。如果有一种方法可以在SQL Server Management工作室使用命令或SSIS执行此操作。
谢谢
答案 0 :(得分:0)
您可以设置数据库触发器,记录开发数据库中的任何更改。 一个例子是:
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;
tblDDLHistory的例子是
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)
)
现在,您可以从此处获取所有更改,以便在生产数据库中使用。