有没有办法将函数作为参数发送到存储过程?
create procedure stp_dummy
@input nvarchar(255)
as select @input
exec stp_dummy a_function_that_returns_string('abracadabra')
(当然我知道以前可以调用该函数,但我想知道直接解决方案是否可用。)
答案 0 :(得分:4)
我知道这不是您正在寻找的答案,但唯一的方法是声明一个局部变量,为此分配函数值,并将其用作参数值:
DECLARE @input nvarchar(255)
SET @input = a_function_that_returns_string('abracadabra')
EXEC stp_dummy @input=@input
使用SQL Server 2008,可以分为两行:
DECLARE @input nvarchar(255) = a_function_that_returns_string('abracadabra')
EXEC stp_dummy @input=@input
答案 1 :(得分:0)
不,这是SQL Server的限制。你必须做一些像Curt所展示的那样的事情。