1、刚刚才发现存储过程中 想要 动态的 where 字段 in ( @ids ) 是不行的 ,我找了好久的Bug 就是找不到,原来是这个原因,最后使用下面的 遍历字符串 将 各项插入临时表 再进行 in 操作
2、遍历逗号间隔的字符串:
declare @Aids varchar(100)
set @Aids = '12,2121,454,78,456,' --要遍历的对象 末尾也要有逗号
declare @item varchar(50)
declare @m int,@n int,@i int
Set @m=CHARINDEX(',',@Aids)
Set @n=1
Set @i=0
WHILE @m>0
BEGIN
Set @item=SubString(@Aids,@n,@m-@n)
--S逻辑区域
--@item 为要操作的目标字项
insert into #RtuBase EXEC [dbo].[JZQ_Tree_Query_ChildrenByType] @item,99,86
--E逻辑区域
Set @i=@i+1
Set @n=@m+1
Set @m=CHARINDEX(',',@Aids,@n)
END