sqlserver中自定义函数+存储过程实现批量删除
由于项目的需要,很多模块都要实现批量删除的功能。为了方便模块的调用,把批量删除方法写成自定义函数。直接上代码。
自定义函数:
ALTER FUNCTION [dbo].[func_SplitById] (@str varchar(50),@split varchar(10))--传过来的id字符串 --分割的标志 RETURNS @t Table (id int) --返回一个表 AS BEGIN DECLARE @x XML --进行拼接 SET @x = CONVERT(XML,'<items><item id="' + REPLACE(@str, @split, '"/><item id="') + '"/></items>') INSERT INTO @t SELECT x.item.value('@id[1]', 'INT') FROM @x.nodes('//items/item') AS x(item) RETURN END
批量删除存调用自定义函数:
ALTER proc [dbo].[pro_DelUserInfo]( @id varchar(max) ) as begin update tbl_member set enable=0 where id in(select * from dbo.func_SplitById(@id,',')) end