create procedure p
@user varchar(8000), --逗号分割的id列表
@rtn int output --输出参数
as
set xact_abort on
begin tran--插入a表记录
insert a([user]) select @user
--设置返回值
set @rtn=@@identity--插入b表记录
while charindex(',',@user)>0
begin
insert b(UserID) select left(@user,charindex(',',@user)-1)
set @user=stuff(@user,1,charindex(',',@user),'')
endinsert b(UserID) select @usercommit trango
@user varchar(8000), --逗号分割的id列表
@rtn int output --输出参数
as
set xact_abort on
begin tran--插入a表记录
insert a([user]) select @user
--设置返回值
set @rtn=@@identity--插入b表记录
while charindex(',',@user)>0
begin
insert b(UserID) select left(@user,charindex(',',@user)-1)
set @user=stuff(@user,1,charindex(',',@user),'')
endinsert b(UserID) select @usercommit trango
declare @user varchar(8000)
create table #b(userid varchar(10))
set @user='1,2,3'
set @user='insert into #b(userid) select '+replace(@user,',',' s union all select ')
exec(@user)
select * from #b
drop table #b