我正在编写一个存储过程,它接受一个输入参数并可以通过可选的输出参数返回相关属性。它是这样定义的:
CREATE PROCEDURE dbo.sp_get_info
@Identifier nvarchar(50),
@Info1 uniqueidentifier = NULL OUTPUT,
@Info2 nvarchar(10) = NULL OUTPUT,
@Info3 int = NULL OUTPUT
我想调用如下程序:
DECLARE @uid uniqueidentifier
...
EXEC sp_get_info @Idenfier = 'a123',
@Info1 = @uid
获取每个输出值会导致不同的活动。这样,我想检测到只有@Info1
输出值应该从其他地方检索的事实。这样,该过程不需要执行检索其他输出(现在不需要的)参数的成本可能很高的代码。
首先,我在考虑像IF @Info1 IS NOT NULL do_something
. 但是,正如 OUTPUT 所说,参数也可以具有输入值(Microsoft SQL),@uid
它本身可以具有 value NULL
。这样,上面的测试就不起作用了。
有什么技术可以解决这种情况吗?
谢谢,彼得