我有2个表,tbl1是我存储了一个业务规则的地方,该规则包含从tbl2中提取NOT NULL值的查询。
我使用了左连接,这是有效的: 查询如下:
SELECT Data.SSO, Data.Amount FROM Data
LEFT JOIN Configuration ON
Data.SSO_Id = Configuration.ID_Field
WHERE
Data.SSO IS NOT NULL
我构建了一个Stored过程,该过程应该从用户那里获取输入,例如'SSO'并从其他表中检索此输入的NOT NULL值:
以下代码:
ALTER PROCEDURE spGetNotNullVal
@User_Input nvarchar(max),
@Result_Not_Null nvarchar(max) OUTPUT
AS
BEGIN
SELECT @Result_Not_Null = Configuration.Business_Rule FROM Configuration
WHERE Configuration.Field_Name = @User_Input
END
--Executing the stored procedure/Will sore @Result_Not_Null Value into @Final_Result and print it.
DECLARE @Final_Result nvarchar(max)
EXECUTE spGetNotNullVal 'Legal Entity', @Final_Result Output
PRINT @Final_Result
问题是,当我执行@Final_Result时,它会回吐相同的Left Join查询,而不是执行它并给出表:
SELECT Data.SSO, Data.Amount FROM Data
LEFT JOIN Configuration ON
Data.SSO_Id = Configuration.ID_Field
WHERE
Data.SSO IS NOT NULL
我哪里错了?有人可以帮忙吗?
答案 0 :(得分:0)
此TSQL仅从配置表
获取业务规则 EXECUTE spGetNotNullVal 'Legal Entity', @Final_Result Output
但实际上并没有执行内容。
为此你需要尝试这样的事情
EXEC sys.sp_executesql @Final_Result