Я попытался сделать функцию, которая возвращает 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
Не забудьте отметить его, как если бы вы получили нужную вам информацию –
Вы можете использовать переменную таблицы вместо таблицы temp, тогда вы можете использовать функцию. –