Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 2008开发和版本控制?_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

SQL Server 2008开发和版本控制?

SQL Server 2008开发和版本控制?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个live SQL Server 2008数据库,我需要开始对其结构进行一些更改。显然,因为它是活的,我想有一个开发副本,我的工作。我如何跟踪这些更改,以便在时机成熟时轻松更新我的live DB?Red Gate的SQL源代码控制对此有很大帮助: 此外,您还可以轻松地将其绑定到CI流程中以实现自动发布:Redgate工具非常优秀 您还可以使用Visual Studio数据库项目来进行源代码管理、同步架构和数据,并进行部署:一个选项是在sql文件中编写所有数据库架构更改的脚本,一旦完成开发,

我有一个live SQL Server 2008数据库,我需要开始对其结构进行一些更改。显然,因为它是活的,我想有一个开发副本,我的工作。我如何跟踪这些更改,以便在时机成熟时轻松更新我的live DB?

Red Gate的SQL源代码控制对此有很大帮助:


此外,您还可以轻松地将其绑定到CI流程中以实现自动发布:

Redgate工具非常优秀


您还可以使用Visual Studio数据库项目来进行源代码管理、同步架构和数据,并进行部署:

一个选项是在sql文件中编写所有数据库架构更改的脚本,一旦完成开发,就可以对live数据库运行该sql文件

我建议使用IF NOT EXISTS检查,这样脚本就可以重新运行,而不会导致错误

例如:

IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
               WHERE TABLE_NAME='tablename') 
BEGIN
      CREATE TABLE...
END

如果您对数据库进行了一些重构,此方法还允许您编写数据转换脚本。

Red Gate的SQL源代码管理在这方面为我们的组织做了很多好事,但我不知道您的预算。当您编写更改脚本时,将它们与运行版本所需的其他代码放在源代码管理中。如果表中有数据,请使用ALTER table,否则会丢失数据。