【发布时间】:2013-08-06 14:10:49
【问题描述】:
我的解决方案中有一个 Visual Studio 数据库项目,用于管理对数据库和源代码控制的更改。
我在 Script.PostDeployment.sql 中运行的项目中的 Scripts/Post-Deployment 文件夹下的每个表都有一个脚本,如下所示:
:r .\Data.Script1.sql
:r .\Data.Script2.sql
....
这些脚本使用“Insert Into tablename...”语句填充所需的数据,例如查找表。
我面临的问题是:
- 如果在上面的示例中 Script1 由于数据库已经存在而失败,并且由于纠正数据中拼写错误等结构的微小变化而重新部署,则批处理的其余部分也会中止。
- insert into 语句中的更改不会传播,因为当分解到现有数据库时,Data.*.sql 文件中的第一条语句将失败,因为该行已经存在。
Visual Studio 数据库项目有没有办法比较现有数据库中的数据并根据行是否已存在来使用插入或更新?
感谢您的意见
【问题讨论】:
-
我很想知道 MSDN 文章的解决方案是否适合您,它是否提供了您需要的所有控制?
-
我还没有时间进一步探索它。它现在基本上在后座上。但是,一旦我找到可行的解决方案或尝试 Merge,我会立即更新。合并看起来很有希望,但语法看起来不太友好
标签: database visual-studio-2010 deployment