我的解决方案中有一个 Visual Studio 数据库项目,用于管理对数据库和源代码控制的更改。
我在 Script.PostDeployment.sql 中运行的项目中的 Scripts/Post-Deployment 文件夹下的每个表都有一个脚本,如下所示:
:r .\Data.Script1.sql
:r .\Data.Script2.sql
....
这些脚本使用“Insert Into tablename ...”语句填充所需的数据,例如查找表。
我面临的问题是:
- 如果在上面的示例中 Script1 由于数据库已经存在而失败,并且由于纠正数据中的拼写错误等结构的微小变化而我正在重新部署,那么批处理的其余部分也将中止。
- 插入语句中的更改不会传播,因为当分解到现有数据库时,Data.*.sql 文件中的第一条语句将失败,因为该行已经存在。
Visual Studio 数据库项目有没有办法比较现有数据库中的数据并根据行是否已经存在来使用插入或更新?
感谢您的输入