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