日期:2014-05-17  浏览次数:20570 次

如何把表值函数的返回值赋值一个变量
函数返回一个表
create function [dbo].[f_splitToTable]() 
returns @t table(col varchar(250)) 
as 
begin 
...
end 

如何在sp中调用这个函数f_splitToTable并把返回的值赋给一个变量,因为要多次调用这个函数,所以需要把它存放到一个变量中,但我用以下方法试了,不行.
declare @t table(col varchar(250)) 
select @t = [dbo].[f_splitToTable]()
运行时提示:必须声明标量变量 "@t"。

------解决方案--------------------
create table #tb(col varchar(250))
insert into #tb(col)
select *
from dbo.f_splitToTable


------解决方案--------------------
引用:
函数返回一个表
create function [dbo].[f_splitToTable]() 
returns @t table(col varchar(250)) 
as 
begin 
...
end 

如何在sp中调用这个函数f_splitToTable并把返回的值赋给一个变量,因为要多次调用这个函数,所以需要把它存放到一个变量中,但我用以下方法试了,不行.
declare @t table(col varchar(250)) 
select @t = [dbo].[f_splitToTable]()
运行时提示:必须声明标量变量 "@t"。


楼主上面已经定义了一个表变量,那么只需要这样就好了:

declare @t table(col varchar(250)) 

insert into @t
select *
from [dbo].[f_splitToTable]()