我試圖做一個函數返回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