我有一个存储过程的参数,我希望从表中指定默认值,我该怎么做?存储过程可选参数的默认值分配
ALTER PROCEDURE [DBO].[Test]
@planId int = 1 (This I can do)
但我想这样做
@planId int = (Select Id from Table1 Where name = ‘ABC’) ‘ Assign default id from a table
我有一个存储过程的参数,我希望从表中指定默认值,我该怎么做?存储过程可选参数的默认值分配
ALTER PROCEDURE [DBO].[Test]
@planId int = 1 (This I can do)
但我想这样做
@planId int = (Select Id from Table1 Where name = ‘ABC’) ‘ Assign default id from a table
如果你想这样做,只是分配0开始,并在程序的第一行这个值写入该变量。
ALTER PROCEDURE [DBO].[Test]
@planId int = 0
AS
BEGIN
SET @planId = (Select Id from Table1 Where name = ‘ABC’)
...
...
...
END
在存储过程中,您可以声明和设置值。在这种情况下,您可以设置@planId,无论你在体内要则:
CREATE PROCEDURE procedureName
@planId int = null output
AS
IF @planId = null
Begin
SET @planId = (Select Id from Table1 Where name = ‘ABC’)
End
ELSE --> then they gave you the value
这就是我现在正在做的事情,所以我不能在声明中分配缺省值(从表中选择)值。 - 谢谢 – user228777 2010-06-23 14:28:29
真的。我在示例的开头添加了一些内容。我有一些基本相同的东西,它确定了价值。 – Kyra 2010-06-23 14:54:41
@ User228777很遗憾,没有办法做到这一点。 – Baaju 2010-06-23 14:56:12
我会用'NULL'而不是'0'默认,再不用为去检查它的在设置之前为NULL。 – 2010-06-23 14:10:02