sql - 在 SSDT 发布上删除或清空表
问题描述
我可能只是愚蠢并且遗漏了一些简单的东西,但是我该如何做到这一点,所以当我发布我的 SSDT 项目时,它会清空或删除我的数据库中的表,而没有在我的发布配置文件中实际将“CreateNewDatabase”设置设置为 true。
我有一些部署后插入,每次发布时都会运行,每次都会导致重复行。
解决方案
澄清一下,每次部署时,您都想清除所有表的内容,因为您在部署后脚本中有大量插入语句来创建所需的数据,因此您希望表为空?
如果这是正确的,那么这不是通常使用 ssdt 的方式,通常数据库中的重要位是数据,因此您不希望在发布时清除每个表,因此除了创建之外没有任何内置内容新数据库。
话虽如此,如果您不需要任何数据,那么您将处于有利位置,我们遇到的大多数问题都是试图确保我们不会意外删除任何数据:)
有几种方法,您可以将插入语句更改为合并语句,您可以从 github 获得一个名为 sp_generate_merge 的过程,它会生成可以使用的合并语句,这将使您的表看起来像您的数据部署后脚本,是我的首选。
如果表的行数超过 2,000 行,则合并语句可能不正确,因此我将在插入数据之前删除 truncate 表。
希望我的问题是对的:)
埃德
推荐阅读
- c# - 使用 .NET Core 2.2 从 Azure 存储中获取所有 Blob
- sql - Postgres将参数添加到间隔语句
- reactjs - 在反应选择中隐藏/删除“新建”菜单
- python - SQL Server:关键字“FROM”附近的语法不正确
- python - django-rest-framework 是否提供管理站点来管理模型?
- python-3.x - 无法运行 Stanford CoreNLPDependency 解析器,找不到 jar 版本 4.1.0
- docker - Docker compose 主机卷目录为空
- c++ - SDL2中的滚动,即改变giu布局的积分坐标
- arrays - 在 C 中使用 malloc() 从数组返回指针时出现分段错误
- c++ - "bool a_indexable = i < static_cast 是什么意思?
(a.size())" 在下面的代码中是什么意思?