IF (@SP_ARGUMENT IS NULL )
SET @SP_ARGUMENT = (SELECT TOP(1) ID FROM TEST_TABLE )
SELECT @SP_ARGUMENT AS ARGUMENT_VAL
以上是我存储过程的代码片段。
但是当我发送sp_argument为null时,我希望它使用TEST_TABLE中的第一个ID进行下面的进一步查询,但不能正常工作。我在这里做错了什么?
请帮助。
答案 0 :(得分:1)
您可以使用IsNull执行此操作:
Set @SP_ARGUMENT = IsNull(@SP_ARGUMENT, (SELECT TOP(1) ID FROM TEST_TABLE ))
SELECT @SP_ARGUMENT AS ARGUMENT_VAL
答案 1 :(得分:0)
为了正确控制T-SQL命令的流程,您需要将SET
语句包装在Begin/End statement中。
IF (@SP_ARGUMENT IS NULL )
BEGIN
SET @SP_ARGUMENT = (SELECT TOP(1) ID FROM TEST_TABLE )
END
SELECT @SP_ARGUMENT AS ARGUMENT_VAL