将数据库脚本导入数据库项目时是否可以带上 TFS 历史记录?

Is it possible to bring TFS history along when importing database scripts into a database project?

我在 TFS 源代码管理下有单独的数据库对象脚本。我想转到 Visual Studio 个数据库项目。将现有脚本导入新项目非常容易,但我真的很想将现有脚本与文件一起使用。

是否可以将其作为脚本导入过程的一部分或通过 TFS 中的某些 post 处理来重新映射历史记录?

如果答案随着 TFS 版本的不同而改变,我也许可以提供所需的版本。

您可以使用安装了 SQL Server Data Tools 功能的 Visual Studio 2012 或更高版本将现有脚本导入数据库项目。

VS 支持导入一个或多个SQL 脚本。您的脚本将被重新解释并从中创建新脚本(每个 table、视图、存储过程等)。例如,如果您有一个带有 CREATE TABLE 语句的脚本和另一个带有向 table 添加列的 ALTER TABLE 的脚本,它们将合并为一个 CREATE TABLE声明。

Some notes from MSDN about importing scripts:

All objects from the import source that do not already exist in the project will be added, and all objects in the import source that do already exist in the project will overwrite the object definition in the project.

Note

There are two known bugs in this path that will be fixed in a future release:

  • If table/column constraints are defined outside of the CREATE TABLE statement in the project’s table definition, import will overwrite the table definition such that the constraint is inline. However, it will leave the out of line constraint, resulting in duplicate constraints in the project.
  • Any master keys or database encryption keys from your source script that already exist in the project will be duplicated on import. Remove duplicates in order to build the project.

不,您不可能将 SQL 脚本连同 TFS 历史一起导入到数据库项目中。