在SSDT上删除或清空表格

时间:2018-05-22 04:14:30

标签: sql sql-server visual-studio publish sql-server-data-tools

我可能只是愚蠢而且遗漏了一些简单的东西,但是如何在我发布我的SSDT项目时这样做,它会清空或丢弃我的数据库中的表而不实际设置' CreateNewDatabase'在我的发布配置文件中设置为true。

我有一些post post deploy,每次发布都会运行,每次都会产生重复的行。

1 个答案:

答案 0 :(得分:1)

只是澄清一下,每次部署时都要清除所有表的内容,因为在部署后的脚本中有大量的insert语句来创建所需的数据,因此您希望表是空的?

如果这是正确的那么这不是ssdt正常使用的方式,通常数据库中的重要位是数据,因此您不希望清除发布中的每个表,因此没有内置任何内容,除了创建新数据库。

如果您不需要任何数据,那么您处于有利位置,我们遇到的大多数问题都是为了确保我们不会意外删除任何数据:)

有几种方法,您可以将insert语句更改为merge语句,有一个名为sp_generate_merge的proc,您可以从github获取,生成可以使用的合并语句,这将使您的表看起来像部署后脚本中的数据是我的首选。

如果表的行数超过2,000行,那么merge语句可能不正确,所以我只是在插入数据之前删除truncate table。

希望我的问题是正确的:)