gpt4 book ai didi

sql-server - 仅在 Debug模式下在发布中包含 PostDeployment sql 脚本

转载 作者:行者123 更新时间:2023-12-03 18:51:13 24 4
gpt4 key购买 nike

我有 Script.PostDeployment.sql 的 .dacpac 项目:

:r .\SiteType.sql
:r .\Enums.sql
:r .\DebugData.sql
我想包括 DebugData.sql有条件地,仅当我与 DEBUG 一起发布时在 Visual Studio 中选择了配置文件,所以在发布生产时我不会包含这些数据。
有什么方法可以实现吗?

最佳答案

一种选择是每次在运行时运行脚本,但根据服务器名称跳过其执行。如果有严格的环境命名约定,这将起作用。
在 DebugData.sql 里面放守卫

-- here the condition is LIKE `DEV`, it could be NOT LIKE 'PROD'
IF @@SERVERNAME LIKE 'DEV%'
BEGIN
... Here goes content of the script
END

选项二:
不要使用单个硬编码值,而是为每个配置准备版本:
:r .\DebugData.sql
=>
:r ."\"$(Config)Data.sql
现在你需要两个文件:
DebugData.sql    -- actual script
ReleasaeData.sql -- empty file
根据配置配置文件,将选择其中一个文件。对于 release 它是空的,所以不会执行实际的代码。

关于sql-server - 仅在 Debug模式下在发布中包含 PostDeployment sql 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66917166/

24 4 0
文章推荐: c - Excel 加载项 : Assignment in for loop causes segmentation fault but line-by-line assignments work. 为什么?
文章推荐: c++ - 如何在 C++ 编译时实现有向无环图 DAG
文章推荐: javascript - 使用 javascript 保持粘性使 div 超出父级
文章推荐: c# - IEnumerable 和 IEnumerable[] 之间的优雅转换