sql-server - TSQL - 如果手动运行(不在作业中)只执行一行
问题描述
我可以创建一个仅在从 SSMS 手动运行时执行的 IF 语句吗?
我有一个执行 TSQL 代码的 SQL Server 作业。该 TSQL 代码保存在单独的 .sql 文本文件中。当需要编辑时,我会编辑文本文件并将最终结果复制并粘贴到作业中。
这通常工作得很好,但有一个关键行仅用于测试(它将变量设置为特定值)。我如何保证该行仅在手动运行时执行?
有没有类似的东西If ManualExecution() then Blah
?
解决方案
IF APP_NAME() LIKE 'Microsoft SQL Server Management Studio%'
BEGIN
PRINT 'Running inside SSMS'
END;
如果您使用 SQL Agent 运行作业,则其应用名称应为SQLAgent - TSQL JobStep (Job 0x... : Step ...)
. 如果您使用其他一些软件,只需确保它没有将其应用程序名称设置为“Microsoft SQL Server Management Studio”...
推荐阅读
- python - Spyder 重启内核似乎是整数溢出问题
- python - GraphAPIError: (#3) 应用程序没有能力进行这个 API 调用
- css - 径向渐变,分割成两个 CSS 椭圆形状
- corda - Corda 节点是否支持组织和组织中的用户的概念?
- vba - Excel VBA 发送不同的电子邮件并记录电子邮件详细信息
- jekyll - 从外部 rake 任务迭代 Jekyll 帖子
- node.js - mongoDb中存储独立标签/hashtags的解决方案
- hammerspoon - 如何使用 hotkey.bind 绑定多个键?
- javascript - 在闪亮的应用程序中按下时,播放在另一个弹出模式中以模式显示的 youtube 视频
- android - 当我使用 admob 颤振时位置参数太多