我可以告诉SSMS在其他地方运行查询的时间吗?

时间:2017-05-18 17:37:30

标签: ssms pragma

是否有任何类型的环境变量(或其他东西)会告诉我脚本是否在SSMS中运行?例如,在我的SSMS查询的顶部,我有这个:

declare @StartDate datetime, @EndDate datetime, @ThisYear datetime, @IncludeZeroBalance int;
set @StartDate = '20080101';
set @EndDate = '20170201';
set @ThisYear = year(GetDate());
set @IncludeZeroBalance = 0;

我希望能够将其保留在查询中,但是"包装"因为它只能在SSMS中看到/运行。某种编译指示,如 #IF SSMS 或类似。

我认为那里不是这样的(搜索已经证明没有结果),但我希望有人知道做这种事情的伎俩...

1 个答案:

答案 0 :(得分:0)

您可以使用APP_NAME()函数获取调用应用程序在其connectionstring中指定的应用程序的名称。例如:

declare @MyAppname nvarchar(50);
select @MyAppname = app_name();
if (@MyAppname = 'Microsoft SQL Server Management Studio - Query')
    begin
        print 'Do SSMS stuff here'
    end
    else
    begin
        print 'Do non-SSMS stuff here'
    end;