由于項目的需要,很多模塊都要實現批量刪除的功能。為了方便模塊的調用,把批量刪除方法寫成自定義函數。直接上代碼。
?自定義函數:
ALTER FUNCTION [dbo].[func_SplitById]
(@str varchar(50),@split varchar(10))--傳過來的id字符串 --分割的標志
RETURNS @t Table (id int) --返回一個表
AS
BEGINDECLARE @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
?