我试图创建一个返回的函数varchar
,但我不能,因为我在CREATE TABLE
里面使用,当我用一个过程创建它时,我不能返回一个值。
我想知道你是否有什么建议。
我这样做只是为了制作一个字符串,其中包含用“;”分隔的电子邮件 所以我可以将所有“经理”邮件放在一个 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 @number_of_mails=@@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 =@counter ) + ';'
set @counter = @counter+1
END
drop table #temp
return cast (@mails as varchar (200))
END