我有一个存储过程:
[checkCultureCode]
@InputCulture varchar(5) = 'en-US',
@ValidCulture varchar(5) OUTPUT
AS
BEGIN
SELECT @ValidCulture = CultureName FROM Culture
WHERE CultureName = @InputCulture
SELECT @ValidCulture = COALESCE(@ValidCulture, 'en-US')
-- or ISNULL(@ValidCulture, 'en-US')
END
我希望得到以下之一:
@InputCulture
返回给我的值(如果它存在于Culture
表中)- 'en-US' 如果
@InputCulture
为空 - 'en-US' 如果
@InputCulture
不是 null 但也不是现有值,例如。'邪恶的'
但是null
当我这样做时,我得到了:
DECLARE @v varchar(5)
EXEC checkCultureCode 'evil', @v
SELECT @v;
这有效,我得到'en-US'作为答案:
DECLARE @v varchar(5)
SELECT @v = CultureName FROM Culture WHERE CultureName = 'evil'
SELECT @v = COALESCE(@v, 'en-US')
SELECT @v;
我曾希望写下所有这些能帮助我看到不同之处,但我仍然做不到。我想使用存储过程和输出参数,以便我可以从另一个存储过程执行此检查。