是否使用Create和Alter语句为SQL Server中的表生成所有脚本?

是否使用Create和Alter语句为SQL Server中的表生成所有脚本?,sql,sql-server,Sql,Sql Server,我想在我的数据库中生成所有脚本。如您所知,单击“生成脚本”,它将输出所有表、所有存储过程等,以及CREATE语句 如何为最近更改的表获取ALTER语句,同时为最近添加的表获取CREATE语句 例如,A、B、C、D表是以前创建的。然后我添加了一个新表作为E,并在C中更改了一个列名。当我单击“生成脚本”时,它必须输出: IF NOT EXISTS .... CREATE TABLE A .... IF NOT EXISTS .... CREATE TABLE B .... IF NOT EXIS

我想在我的数据库中生成所有脚本。如您所知,单击“生成脚本”,它将输出所有表、所有存储过程等,以及
CREATE
语句

如何为最近更改的表获取
ALTER
语句,同时为最近添加的表获取
CREATE
语句

例如,A、B、C、D表是以前创建的。然后我添加了一个新表作为E,并在C中更改了一个列名。当我单击“生成脚本”时,它必须输出:

IF NOT EXISTS ....
CREATE TABLE A
....

IF NOT EXISTS ....
CREATE TABLE B
....

IF NOT EXISTS ....
CREATE TABLE C
....

IF NOT EXISTS ....
CREATE TABLE D
....

IF NOT EXISTS ....
CREATE TABLE E
....

ALTER TABLE C
MODIFY COLUMN XX...
像这样


生成脚本将为数据库中的各种对象提供create语句。听起来您正在寻找一个源代码管理系统,它能够根据源代码管理中的更改生成CREATE/ALTER语句。

使用SSMS将脚本生成到一个新的查询窗口中,然后在该新查询窗口中的SSMS中使用RegEx搜索进行查找和替换

因此,如果脚本包含函数,请单击Ctrl+H,然后:

搜索项:(创建。*函数)

替换项:创建或更改函数


然后根据需要更换

SSMSI无法更换manuel无法更换吗?我尝试这样做:打开生成的脚本文件,用ALTERTABLE替换CREATETABLE。但在这种情况下,我丢失了新表的CREATE语句。等等。您可以尝试使用Microsoft Visual Studio数据库项目;它生成的dacpac文件非常适合您的目的。我可以试试。看看这个相关的帖子,Aaron Bertrand给出了一个很好的回答。有没有针对这种情况的源代码管理系统?我认为任何人/所有人都可能能够根据源代码管理和实时版本之间的差异生成部署脚本。我在一个使用TFS的环境中,我使用Redgate SQL源代码控制。