Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 生成SQL脚本以创建或更改表/存储过程_Sql Server_Sql Server 2012 - Fatal编程技术网

Sql server 生成SQL脚本以创建或更改表/存储过程

Sql server 生成SQL脚本以创建或更改表/存储过程,sql-server,sql-server-2012,Sql Server,Sql Server 2012,我正在创建一个SQL脚本,它将检查对象是否存在,然后在此基础上创建或更改 if not exists (select * from sysobjects where name='MyTableName' and xtype='U') create table MyTableName( Id int not null, Name varchar(150) not null ) Else --Alter 现在必须为一个有150多个表的更大的数据库

我正在创建一个SQL脚本,它将检查对象是否存在,然后在此基础上创建或更改

if not exists (select * from sysobjects where name='MyTableName' and xtype='U')
    create table MyTableName(
        Id int not null,
        Name varchar(150) not null
    )
Else
  --Alter
现在必须为一个有150多个表的更大的数据库执行此操作


是否有任何方法可以自动为表和存储过程生成此结果?

据我判断:您的问题已经包括答案-不,无法完成!事情是这样的:如果对象存在于环境中,您可以假脱机表等的元数据。。。正如您前面提到的,情况并非如此——那么函数/脚本/过程如何才能知道必须为哪个表创建哪些列等呢?或者,如果表格已经存在,有什么需要修改的?

我不明白。你每次都会创建相同的表吗?或者每次都向已经存在的表中添加相同的字段?@Shaharyar:基本上它只会第一次创建或在不同的服务器上运行。否则改变。该脚本主要用于存储过程的更改frequently@mrTester,我想说的是,如果您希望得到ALTERTABLES的简单解决方案,那么您就有麻烦了。对于SPs来说,实际上没有什么有趣的地方。@IvanStarostin:其想法是能够在需要时反复运行同一个脚本,而无需进行修改。为什么?你想用这个解决什么问题?真正的问题是什么?