SQL Server 存储过程 中常用的小套路

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 

猜你喜欢

转载自blog.csdn.net/qq_36445227/article/details/93307503