我试图做一个函数返回varchar
,但我不能因为我在里面使用CREATE TABLE
,当我用一个过程创建它时,我无法返回一个值。返回varchar的过程
我想知道你是否有一些建议。
我这样做是为了让一个字符串与电子邮件分隔“;”所以我可以将所有“经理”邮件放在一个varchar中(针对收件人)。
ALTER procedure [dbo].[Manager_email]
AS
BEGIN
declare @mails varchar (max),
@number_of_mails int,
@counter int
set @counter=2
create table #temp (id int identity, email varchar(30))
insert into #temp (email)
select Email
from hr.Employees
where lower (EmpRole) like 'manager'
set @[email protected]@ROWCOUNT
set @mails = (select email from #temp where id =1) + ';'
while @counter <= @number_of_mails
BEGIN
set @mails = @mails + (select email from #temp where id [email protected]) + ';'
set @counter = @counter+1
END
drop table #temp
return cast (@mails as varchar (200))
END
不要忘了标记它作为acceepted,如果你有你想要的信息 – 2013-03-27 13:07:00
你可以使用表变量,而不是临时表,然后你可以使用函数。 – 2013-11-12 21:04:47