SQL Server和SourceSafe

我有两台SQL服务器(这些是独立的,只用于开发和testing)的运行计算机的设置,我想能够使用源安全,以便我可以保持这两个SQL服务器同步(他们在一个局域网) 。 我有SQL Server 2008,虽然它在2000兼容模式下工作; 和源安全2005年。

我在两台计算机上都安装了源代码安全,并且我在其中一台计算机上安装了源代码安全数据库。 在另一台计算机上(不控制SS的计算机),我有一个SQL数据库,我需要把它放在源代码中。 我该怎么做呢? SQL Server Management Studio中的工具栏button在那里,但它们是灰色的,唯一能让我做的与源代码安全有关的是“启动源安全”,而在sourcesafe里面,没有任何关于SQL数据库的东西。

这听起来像你不仅想要版本控制架构,而且该架构内的数据呢? 为什么不为模式编写数据库脚本,然后使用SSIS将数据提取到CSV文件中。 您可以压缩这些文件,然后将它们存储在您select的SCM中。

我不会推荐Visual Source Safe,因为它很容易破坏你的版本控制数据库。 通过Win32的TortoiseSVN来看看Subversion

对不起,如果我误解你的要求。 但我不认为你会发现一个工具的版本控制你的整个数据库 – 架构和数据库。

在SSMS中,VSS集成意味着能够将“Sql Server脚本”,“Analysis Services脚本”或“SQL Server CE脚本”项目检查到VSS中。 这些项目只不过是一个文本文件的集合 – 不像一个C#应用程序项目,这是一个文件+构build脚本的集合。 SSMS项目缺乏“构build”部分。

SQL Redgate等第三方产品将使您更接近您所描述的内容。

我相信Visual Studio for Database Developers有这个function。 还有其他第三方产品可以同步你的模式。

数据库不像你存储在源代码控制中的“普通”代码 – 为了同步数据库,你不仅需要replace代码行,还必须生成ALTER(和其他)语句。

如果您每次都从头开始创build数据库,则可以使用create语句,但同时保持两个实时数据库同步需要一些逻辑来进行同步。

您也可以编写SMO(pipe理SQL的API)将数据库脚本编写为文件,然后将其添加到源代码pipe理。

这是一个这样的工具的例子。

我们使用redgate sql比较这样的任务。

另见: https : //stackoverflow.com/questions/115369/do-you-source-control-your-databases

如果你只有常规的VS,你可以使用数据库项目。 编写脚本来更新数据库,然后针对每个数据库服务器运行它们。 这是我用来移动dev,test和prod之间的更改(同步数据库),因为我们没有数据库版本。

数据库项目可以被检入到源代码控制中。

没有SQL Server与源代码控制的完整集成。 微软在几年前就尝试过,没有人使用它,因为它不是那么可靠。

大多数人只是简单地将每个对象脚本化为一个单独的文件,并将这些文件保存在源代码pipe理中。 然后编辑文件并同时将更改部署到数据库。 然后标记您为发行版更改的所有文件。