我有两个运行计算机的 SQL 服务器(它们是独立的,仅用于开发和测试)的设置,我希望能够使用源安全,以便我可以使这两个 SQL 服务器保持同步(它们在 LAN 上) . 我有 SQL Server 2008,虽然它在 2000 兼容模式下工作;和来源安全 2005。
我在两台计算机上都安装了源安全,并且我在其中一台计算机上有一个源安全数据库。在另一台计算机(不控制 SS 的计算机)上,我有一个 SQL 数据库,我需要将其放入源代码安全中。我该怎么做呢?SQL Server Management Studio 中的工具栏按钮在那里,但它们是灰色的,它让我做的唯一与源安全有关的事情是“启动源安全”,在 sourcesafe 中,没有任何关于 SQL 数据库的内容。
在 SSMS 中,VSS 集成意味着能够将“Sql Server Scripts”、“Analysis Services Scripts”或“SQL Server CE Scripts”项目检入 VSS。这些项目只不过是文本文件的集合——不像 C# 应用程序项目,它是文件集合 + 构建脚本。SSMS 项目缺少“构建”部分。
SQL Redgate 等第 3 方产品将使您更接近您所描述的内容。
我相信 Visual Studio for Database Developers 具有此功能。还有其他 3rd 方产品可以同步您的架构。
数据库不像您存储在源代码管理中的“普通”代码 - 为了同步数据库,您不仅要替换代码行,还必须生成 ALTER(和其他)语句。
如果您每次都从头开始创建数据库,则可以只使用 create 语句,但保持两个实时数据库同步需要一些逻辑来同步。
您还可以编写 SMO(一种用于管理 SQL 的 API)将数据库脚本写入文件,然后将其添加到源代码控制中。
这是此类工具的一个示例。
我们对此类任务使用 redgate sql compare。
另请参阅: https ://stackoverflow.com/questions/115369/do-you-source-control-your-databases
如果你只有普通的 VS,你可以使用数据库项目。编写脚本来更新数据库,然后对每个数据库服务器运行它们。这是我用来在 dev、test 和 prod 之间移动更改(同步数据库)的方法,因为我们也没有数据库版本。
然后可以将数据库项目签入源代码管理。
SQL Server 与源代码控制没有完全集成。微软几年前就尝试过这样做,但没有人使用它,因为它并不那么可靠。
大多数人只是简单地将每个对象编写成一个单独的文件,并将这些文件保存在源代码管理中。然后编辑文件并同时将更改部署到数据库。然后标记您为发布更改的所有文件。
听起来您不仅要对架构进行版本控制,还要对架构内的数据进行版本控制?为什么不为架构编写数据库脚本,然后使用 SSIS 将数据提取到 CSV 文件中。您可以压缩这些文件,然后将它们存储在您选择的 SCM 中。
我不推荐 Visual Source Safe,因为它很容易损坏您的版本控制数据库。看看通过TortoiseSVN for Win32的 Subversion
抱歉,如果我误解了您的要求。但我认为您不会找到版本控制整个数据库的工具 - 架构和数据库。