在SSDT上删除或清空表格

问题描述 投票:0回答:1

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

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

sql sql-server visual-studio publish sql-server-data-tools
1个回答
1
投票

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

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

话虽这么说,如果你不需要任何数据,那么你处于一个很好的位置,我们遇到的大多数问题是试图确保我们不会意外删除任何数据:)

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

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

希望我有正确的问题:)

© www.soinside.com 2019 - 2024. All rights reserved.