首页 > 解决方案 > TSQL - 如果手动运行(不在作业中)只执行一行

问题描述

我可以创建一个仅在从 SSMS 手动运行时执行的 IF 语句吗?

我有一个执行 TSQL 代码的 SQL Server 作业。该 TSQL 代码保存在单独的 .sql 文本文件中。当需要编辑时,我会编辑文本文件并将最终结果复制并粘贴到作业中。

这通常工作得很好,但有一个关键行仅用于测试(它将变量设置为特定值)。我如何保证该行仅在手动运行时执行?

有没有类似的东西If ManualExecution() then Blah

标签: sql-servertsql

解决方案


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”...


推荐阅读