【发布时间】:2016-12-10 00:17:45
【问题描述】:
假设我有以下存储过程:
CREATE PROCEDURE test
@my_var varbinary
AS
SELECT @my_var as my_var
但是我想修改它,使@my_var 具有默认值。我不知道该值的字面意思是什么,但我知道在数据库中的何处获取它。
类似:
declare @var int
SELECT @var = my_variable from my_table where something = 'what I need'
GO
CREATE PROCEDURE test
@my_var varbinary = @var
AS
SELECT @my_var as my_var
但是,这失败了。似乎@var 超出了范围。
有可能做那种事吗?
谢谢!
【问题讨论】:
-
这个值会改变,还是在存储过程的整个生命周期中都一样?
-
它可能,但是,我只想执行一次查询,获取该值并将其作为默认值放入 SP。换句话说,从现在到时间结束,查询可能不一定返回相同的值,但我只关心我在创建 SP 时通过此查询获取的值。因此,不幸的是,将默认值设置为 NULL 并在 SP 内进行 if 检查并从那里调用查询是不可行的。
-
您选择 inside proc,紧跟在
AS之后并设置@my_var的值
标签: sql-server stored-procedures default-value