我有一个SSDT项目。发布新版本时,我也希望在数据库中发布/初始化一些数据。可以使用SSDT完成吗?
答案 0 :(得分:4)
可以做到,但可能会很棘手。如果您在项目中设置了一个可用于“新”版本的变量,您可以将其放在部署后脚本中作为运行一系列插入的部分,但仅限于“新”类型。 / p>
正如David所说,更好的方法可能是使用Red-Gate的数据比较或在创建数据库后运行脚本。可以在部署后的脚本中执行此操作,但可能会很棘手。
这样的事情可行:
IF '$(DeployType)' = 'New'
BEGIN --"New" release scripts
PRINT 'Post-Deploy Scripts for release.'
:r .\InsertScript1.sql
:r .\InsertScript2.sql
--etc
END --"New" release scripts
答案 1 :(得分:2)
这在SSDT中是不可能的。 current guidance将使用部署后脚本。
Redgate ReadyRoll提供了SSDT用户熟悉的许多经验,但改进了static data management以及许多其他改进。
答案 2 :(得分:1)
当我们将Merge脚本放置在项目的特定子文件夹中时,它们会自动包含。
答案 3 :(得分:0)
取决于你所做的事情,桌面价值的教师可能需要关注:
substring()
这些可以通过SSDT轻松传输和比较。
有关矿石信息,请参阅https://www.simple-talk.com/sql/sql-training/table-value-constructors-in-sql-server-2008/