5

我有一个 SSDT 项目。发布新版本时,我还想发布/初始化数据库中的一些数据。可以使用 SSDT 完成吗?

4

4 回答 4

4

可以做到,但可能很棘手。如果您在项目中设置了一个可用于“新”版本的变量,则可以将其作为运行一系列插入的部分放在部署后脚本中,但仅适用于“新”类型。

正如大卫所提到的,更好的方法可能是使用类似 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
于 2013-05-01T20:56:26.687 回答
2

这在 SSDT 中是不可能的。当前的指导是使用部署后脚本。

Redgate ReadyRoll提供了许多 SSDT 用户熟悉的体验,但改进了静态数据管理以及许多其他改进。

于 2013-05-01T11:52:14.027 回答
1

当它们被放置在项目的特定子文件夹中时,我们会自动包含合并脚本。

于 2015-05-13T07:30:35.250 回答
0

根据您的工作,表值的 custructors 可能值得一看:

SELECT *
FROM
  (VALUES
    (101, 'Bikes'),
    (102, 'Accessories'),
    (103, 'Clothes')
  ) AS Category(CategoryID, CategoryName);

SSDT 可以轻松地传输和比较这些数据。

矿石信息见https://www.simple-talk.com/sql/sql-training/table-value-constructors-in-sql-server-2008/

于 2016-04-23T23:47:30.510 回答