我可以判断 SSMS 与其他地方的查询何时为 运行 吗?
Can I tell when a query is running in SSMS vs elsewhere?
是否有任何类型的环境变量(或其他变量)可以告诉我脚本是否在 SSMS 中 运行?例如,在我在 SSMS 中查询的顶部,我有这个:
declare @StartDate datetime, @EndDate datetime, @ThisYear datetime, @IncludeZeroBalance int;
set @StartDate = '20080101';
set @EndDate = '20170201';
set @ThisYear = year(GetDate());
set @IncludeZeroBalance = 0;
我希望能够将其保留在查询中,但 "wrap" 它带有某些内容,因此在 SSMS 中它只是 seen/run。某种编译指示,例如 #IF SSMS 或类似的。
我认为没有这样的事情(搜索已证明无果)但我希望有人知道做那种事情的技巧...
您可以使用 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;
是否有任何类型的环境变量(或其他变量)可以告诉我脚本是否在 SSMS 中 运行?例如,在我在 SSMS 中查询的顶部,我有这个:
declare @StartDate datetime, @EndDate datetime, @ThisYear datetime, @IncludeZeroBalance int;
set @StartDate = '20080101';
set @EndDate = '20170201';
set @ThisYear = year(GetDate());
set @IncludeZeroBalance = 0;
我希望能够将其保留在查询中,但 "wrap" 它带有某些内容,因此在 SSMS 中它只是 seen/run。某种编译指示,例如 #IF SSMS 或类似的。
我认为没有这样的事情(搜索已证明无果)但我希望有人知道做那种事情的技巧...
您可以使用 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;