我必须在SQL Server的存储过程中设置几个变量。
目前,我使用单独的SELECT
语句来设置每个变量。我不知道是否有更好/更有效的方法。
这是2个变量的样本,但总共有8个变量。
DECLARE @source nvarchar(250)
DECLARE @target nvarchar(250)
SET @source = (SELECT Value FROM ApplicationSetting WHERE Key = 'Source')
SET @target = (SELECT Value FROM ApplicationSetting WHERE Key = 'Target')
目前,我使用8个单独的select语句来设置每个变量。 这是设置这么多变量的最有效方法吗?
答案 0 :(得分:3)
在单个select
中,我们可以使用条件聚合
试试这种方式
DECLARE @source NVARCHAR(250)
DECLARE @target NVARCHAR(250)
SELECT @source = Max(CASE WHEN KEY = 'Source' THEN Value END),
@target = Max(CASE WHEN KEY = 'Target' THEN Value END)
FROM ApplicationSetting
WHERE KEY IN( 'Source', 'Target' )