The*_*mer 2 sql t-sql sql-server-2014
那么如何declare @tempVar varchar(max)在用户声明的函数中使用声明类似:声明临时局部变量?我在这里试图解决的实际问题是在用户定义的存储函数中声明和使用变量。我这样声明我的函数:
create function someFunction(@someParam varchar(100))
returns table
as
return (
declare @tempvar varchar(100)
set @tempvar = ''--Set the var to something useful
select * from sometable where somecolumn = (
select top 1 someColumn
from sometable
where somecolumn = @tempvar
)
)
Run Code Online (Sandbox Code Playgroud)
服务器抱怨变量声明在错误的位置。我应该在哪里像这样在 UDF 中声明我的变量?
您正在创建一个内联表值函数,此类函数必须仅包含单个SELECT语句。
如果要使用变量,则必须创建多语句表值函数。您的函数将声明为:
create function someFunction(@someParam varchar(100))
returns @table (field1 type, field2 type, ...)
as
begin
declare @tempvar varchar(100)
set @tempvar = ''--Set the var to something useful
insert @table
select * from sometable where somecolumn = (
select top 1 someColumn
from sometable
where somecolumn = @tempvar
)
return
end
Run Code Online (Sandbox Code Playgroud)