我的解决方案中有一个 Visual Studio 数据库项目,用于管理数据库和源代码控制的更改。
我在 Script.PostDeployment.sql 中运行的项目中的 Scripts/Post-Deployment 文件夹下的每个表都有一个脚本,如下所示:
:r .\Data.Script1.sql
:r .\Data.Script2.sql
....
这些脚本使用“Insert Into tablename...”语句填充所需的数据,例如查找表。
我面临的问题是:
有没有办法让 Visual Studio 数据库项目比较现有数据库中的数据并根据行是否已存在使用插入或更新?
您应该在 Data.*.sql 文件中使用 MERGE INTO 而不是 INSERT INTO 语句。
有关详细信息,请参阅此 MSDN 文章,http://blogs.msdn.com/b/ssdt/archive/2012/02/02/include-data-in-an-sql-server-database-project.aspx