SQL存储过程通过传送数组字符串参数删除多条记录

SQL删除记录有多种不同的方法,下面为您介绍在SQL Server存储过程通过传送数组字符串参数删除多条记录(如多选或全选表单中的多选框所获取的一组数值删除 )。

代码如下:

[[15054]]
CREATE
 
PROCEDURE
 DeleteNews
[[15054]]    

@ID
 
nvarchar
(
500
)
[[15054]]

as

[[15054]]    

DECLARE
 
@PointerPrev
 
int

[[15054]]    

DECLARE
 
@PointerCurr
 
int

[[15054]]    

DECLARE
 
@TId
 
int

[[15054]]    

Set
 
@PointerPrev
=
1

[[15054]]    
[[15054]]    

while
 (
@PointerPrev
 
<
 
LEN
(
@ID
))
[[15054]]    

Begin

[[15054]]        

Set
 
@PointerCurr
=
CharIndex
(
'
,
'
,
@ID
,
@PointerPrev
)
[[15054]]        

if
(
@PointerCurr
>
0
)
[[15054]]        

Begin

[[15054]]            

set
 
@TId
=
cast
(
SUBSTRING
(
@ID
,
@PointerPrev
,
@PointerCurr
-
@PointerPrev

as
 
int
)
[[15054]]            

Delete
 
from
 News 
where
 ID
=
@TID

[[15054]]            

SET
 
@PointerPrev
 
=
 
@PointerCurr
+
1

[[15054]]        

End

[[15054]]        

else

[[15054]]            

Break

[[15054]]    

End

[[15054]]    

--
删除最后一个,因为最后一个后面没有逗号,所以在循环中跳出,需另外再删除

[[15054]]

     
set
 
@TId
=
cast
(
SUBSTRING
(
@ID
,
@PointerPrev
,
LEN
(
@ID
)
-
@PointerPrev
+
1

as
 
int

[[15054]]     

Delete
 
from
 News 
where
 ID
=
@TID

[[15054]]

GO

[[15054]]

THE END