2009-09-11 95 views
0

我知道自动生成SQL更改工具存在,但我想创建一个非常轻量级的工具。创建一个适度的自动生成SQL更改脚本?

目前,我手动登录任何存储过程或表的修改(或新的存储过程或表),而这是发布/释放其占用时间(因此,尽管这些工具存在)

我只是想在非常有效自动化SQL脚本生成部分。我知道,SQL可以设置为记录(或插入一个记录),当发生某些数据库更改(这将有效地取代记录更改的第一个手动部分),我已经找到教程如何设置这个,所以我在那里确定。

我想知道怎么做的部分:

鉴于包含关于(新/改变存储过程和新的/改变表)我怎样才能再生成SQL脚本数据的表?

这个自动生成是否可以在SQL中完成(例如任何函数/命令?),还是我不得不求助于编写一个程序来吐出SQL脚本?

+0

确定,稍后挖掘一些内置函数sp_HelpText'Stored_proc_name' 返回存储过程的内容,albiet与'CREATE',但是对于更改过的存储过程进行字符串替换会很简单。 我现在需要能够自动更改脚本表,例如添加/删除/更改字段? – Darknight 2009-09-12 00:30:57

+0

也自动生成添加新表? <我想那个应该相当简单? – Darknight 2009-09-12 00:31:40

回答

1

我认为处理这种事情的最好方法是保持像你提到的ddl变更的审计日志。例如,在sql server 2005中,您可以触发一个“AFTER DDL_TABLE_EVENTS”,并使用EVENT()函数获取ddl修改的内容(如xml)。假设你有你的ddl修改触发器写入一个表,其中包含订购的修改列表,你可以在其他服务器上重播 - 比如dev来测试prod。当您准备将目标服务器与源服务器的高度相同时,请编写脚本 - 甚至是一个sproc或函数,以将ddl changelog表转储为文本文件。