如何从查询到变量获取值

时间:2011-10-15 21:15:08

标签: sql sql-server-2005 tsql sql-server-2008

根据我的研究,在MSSQL中没有数组变量,不是吗? 我想获得一个选择查询的结果。查询返回的值超过1。 (您可以在下面看到查​​询,它返回的值超过1,我无法分配它。)

Declare @sp_name varchar(100)
set @sp_name = (select name from sys.procedures)

有没有办法把结果变成变量?

2 个答案:

答案 0 :(得分:2)

使用此

set @sp_name = ''
select @sp_name = @sp_name +name+','  from sys.procedures
set @sp_name = left(@sp_name,len(@sp_name)-1)      -- Remove last comma

现在@sp_name将是一个以逗号分隔的列表。

您也可以

select @sp_name into #tmpList FROM sys.procedures
select * from #tmpList

你是对的,没有数组,但希望逗号列表或临时表可以做你想要的......

答案 1 :(得分:2)

您可以使用table variable

declare @results table (Name nvarchar(100))
insert into @results select name from sys.procedures
select * from @results