下面为您介绍的SQL Server删除方法和一般的SQL Server删除方法有所不同,该方法实现的是在SQL Server存储过程通过传送数组字符串参数SQL Server删除多条记录(如多选或全选表单中的多选框所获取的一组数值删除 )。
- CREATE PROCEDURE DeleteNews
- @ID nvarchar(500)
- as
- DECLARE @PointerPrev int
- DECLARE @PointerCurr int
- DECLARE @TId int
- Set @PointerPrev=1
- while (@PointerPrev < LEN(@ID))
- Begin
- Set @PointerCurr=CharIndex(',',@ID,@PointerPrev)
- if(@PointerCurr>0)
- Begin
- set @TId=cast(SUBSTRING(@ID,@PointerPrev,@PointerCurr-@PointerPrev) as int)
- Delete from News where ID=@TID
- SET @PointerPrev = @PointerCurr+1
- End
- else
- Break
- End
- --删除最后一个,因为最后一个后面没有逗号,所以在循环中跳出,需另外再删除
- set @TId=cast(SUBSTRING(@ID,@PointerPrev,LEN(@ID)-@PointerPrev+1) as int)
- Delete from News where ID=@TID
- GO
- set ANSI_NULLS ON
- set QUOTED_IDENTIFIER ON
- GO
- CREATE PROCEDURE AddInter
- @userID nvarchar(max),
- @ProjecID int
- as
- begin
- DECLARE @PointerPrev int
- DECLARE @PointerCurr int
- DECLARE @TId int
- Set @PointerPrev=1
- begin transaction
- while (@PointerPrev < LEN(@userID))
- Begin
- Set @PointerCurr=CharIndex(',',@userID,@PointerPrev)
- if(@PointerCurr>0)
- Begin
- set @TId=cast(SUBSTRING(@userID,@PointerPrev,@PointerCurr-@PointerPrev) as int)
- exec AddIntention @TID,@ProjecID,0,2
- SET @PointerPrev = @PointerCurr+1
- End
- else
- Break
- End
- --删除最后一个,因为最后一个后面没有逗号,所以在循环中跳出,需另外再删除
- set @TId=cast(SUBSTRING(@userID,@PointerPrev,LEN(@userID)-@PointerPrev+1) as int)
- exec AddIntention @TID,@ProjecID,0,2
- IF (@@error <> 0)
- begin
- ROLLBACK TRANSACTION
- end
- COMMIT TRANSACTION
- Return
- end
- GO
【编辑推荐】
六种SQL Server删除重复行的方法
SQL Server创建表语句介绍
SQL Server创建数据库的命令
sql server系统表损坏的解决方法
带您了解SQL Server游标
分享名称:通过SQL Server存储过程传送数组参数删除多条记录
网站路径:http://www.shufengxianlan.com/qtweb/news1/385251.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联