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]]