以下为删除记录的存储过程,此删除为逻辑删除,只是将记录的状态字段state改为'2'了,正常为'1'

/*******************************************************************************根据ID删除黑名单表中记录信息******************************************************************************/CREATE PROCEDURE [dbo].[P_DelBlackListByID_sp]@IDList nvarchar(2000)AS   DECLARE @Len int   DECLARE @id varchar(30)   SELECT @Len = DATALENGTH(@idList)   WHILE @Len> 0    BEGIN   EXECUTE @Len = GetFirstWordWithSeparator_sp @idList OUTPUT, @id OUTPUT,','   IF @Len > 0      BEGIN     update BlackList_tb set [state]='2' WHERE BlackListID=cast(@id as int)     END   End

以上存储过程调用了下面的存储过程

CREATE PROCEDURE [dbo].[GetFirstWordWithSeparator_sp]@SourceString nvarchar(4000) = NULL OUTPUT,@FirstWord nvarchar(4000) = NULL OUTPUT,@Separator nvarchar(20)AS   SET NOCOUNT ON   DECLARE @Oldword nvarchar(4000)   DECLARE @Length int   DECLARE @CommaLocation int   SELECT @Oldword = @SourceString   IF NOT @Oldword IS NULL   BEGIN     SELECT @CommaLocation = CHARINDEX(@Separator,@Oldword)     SELECT @Length = DATALENGTH(@Oldword)     IF @CommaLocation = 0     BEGIN        SELECT @FirstWord = @Oldword        SELECT @SourceString = NULL        RETURN @Length        END        SELECT @FirstWord = SUBSTRING(@Oldword, 1, @CommaLocation -1)        SELECT @SourceString = SUBSTRING(@Oldword, @CommaLocation + LEN(@Separator), @Length - @CommaLocation)        RETURN @Length - @CommaLocation     END     RETURN 0

这样就可以一次性向数据库传递一个字符串id集合对数据进行操作了,这样做可以不用in关键字。
PS:我的淘宝店铺新开业,经营各种桌游,棋牌,希望大伙儿能来看看!http://201314yes.taobao.com/

转载于:https://www.cnblogs.com/jenney-qiu/archive/2012/02/27/2369458.html

sql 根据多个ID删除表中多行数据相关推荐

  1. mysql条件删除表中某些行数据_根据MySQL中的条件仅删除表中的某些行

    让我们首先创建一个表-create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); 使用insert命令在表 ...

  2. 用SQL语句怎么删除表中的所有数据

    有两种办法可以删除表中的所有数据: 1.TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作. 语法 TRUNCATE TABLE name 参数 name 是要截断的表的名称或要删 ...

  3. mssql sqlserver 禁止删除数据表中指定行数据(转自:http://www.maomao365.com/?p=5323)

    转自:http://www.maomao365.com/?p=5323 摘要: 下文主要讲述,如何禁止删除数据表中指定行数据 最近收到用户一个需求,禁止所有人删除"表A"中,ID ...

  4. Oracle删除表中的重复数据

    Oracle数据库删除表中的重复数据,只保留其中的一条,以两个字段为例,提供两种方法 ①.直接delete重复的数据 delete from table_name t1 where (t1.col1, ...

  5. MySQL之创建函数,一次性插入表中多行数据

    MySQL之创建函数,一次性插入表中多行数据 一.MySQL之使用存储过程创建函数,一次性插入表中多行数据 一.MySQL之使用存储过程创建函数,一次性插入表中多行数据 #DELIMITER 的使用 ...

  6. SQL Server 使用DELETE 语句删除表中的记录两种情况(删除符合条件的记录,删除所有记录)

    1 使用详解 DELETE 语句 说明:用于删除表中的记录. 语法: DELETE FROM table_name [WHERE some_column operator some_value]; 2 ...

  7. MYSQL 删除表中的重复数据

    test表中的原始数据: test表中name字段信息有重复,想进行过滤删除重复数据 删除重复数据之后的预期结果(不考虑id): 方法一: 用 create ......select......gro ...

  8. 在ORACLE中如何删除表中的重复数据

    我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样. 一. ...

  9. sqlserver 删除表中重复的数据

    --在删除之前可以先查看一下结果: SELECT max(主键ID),列1,列2...列n FROM [TABLE表] group by 列1,列2...列n--删除重复的数据,保留主键最大的那条数据 ...

最新文章

  1. url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介
  2. yum 安装php7和相关扩展
  3. 2014/School_C_C++_B/2/调和级数
  4. Tomcat 8.5.29启动报TldScanner.scanJars错误问题解决办法
  5. .NET Core 微服务学习与实践系列文章目录索引(2019版)
  6. 作者:唐华(1973-),男,华南师范大学软件学院院长助理、副教授。
  7. SharePoint 调查列表的自定义错误页面
  8. AI 实战:GPS实景识别网络项目(源码共享)
  9. http请求 405错误 方法不被允许 (Method not allowed)
  10. luogu 2411 白银莲花池 luogu 1606 Lilypad Pond
  11. Inferred type 'S' for type parameter 'S' is not within its bound
  12. 唤醒手腕Python全栈工程师学习笔记(微机实验篇)
  13. numpy中的log和ln函数
  14. 哔哩哔哩 BV、AV互转 Java版
  15. jquery的优势是什么?
  16. 知识管理的唯一出路:与业务融合,构建情景化知识管理体系
  17. 2020联发科技笔试面试经验
  18. 【管理者】精读德鲁克教授《卓有成效的管理者》(一)
  19. 基于Android的3G手机网络摄像机客户端软件设计
  20. 记录自己考研二战失败后找工作的经历

热门文章

  1. 补3.31 部分成果以及上周的工作
  2. JAVA修饰符类型(public,protected,private,friendly)
  3. CentOS安装tomcat
  4. 中移动TD终端资助或只限五洋巨头
  5. 路由过滤之 Route-map Distribute-list
  6. 用 Flask 来写个轻博客 (33) — 使用 Flask-RESTful 来构建 RESTful API 之二
  7. Linux_Rsync远程同步备份服务器
  8. Zeal编程查询,离线文档浏览器
  9. NR 5G UE初始接入流程
  10. SqlBulkCopy与触发器,批量插入表(存在则更新,不存在则插入)