首页 > 解决方案 > 在 SSDT 发布上删除或清空表

问题描述

我可能只是愚蠢并且遗漏了一些简单的东西,但是我该如何做到这一点,所以当我发布我的 SSDT 项目时,它会清空或删除我的数据库中的表,而没有在我的发布配置文件中实际将“CreateNewDatabase”设置设置为 true。

我有一些部署后插入,每次发布时都会运行,每次都会导致重复行。

标签: sqlsql-servervisual-studiopublishsql-server-data-tools

解决方案


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

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

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

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

如果表的行数超过 2,000 行,则合并语句可能不正确,因此我将在插入数据之前删除 truncate 表。

希望我的问题是对的:)

埃德


推荐阅读