sql 根据多个ID删除表中多行数据
以下为删除记录的存储过程,此删除为逻辑删除,只是将记录的状态字段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删除表中多行数据相关推荐
- mysql条件删除表中某些行数据_根据MySQL中的条件仅删除表中的某些行
让我们首先创建一个表-create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); 使用insert命令在表 ...
- 用SQL语句怎么删除表中的所有数据
有两种办法可以删除表中的所有数据: 1.TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作. 语法 TRUNCATE TABLE name 参数 name 是要截断的表的名称或要删 ...
- mssql sqlserver 禁止删除数据表中指定行数据(转自:http://www.maomao365.com/?p=5323)
转自:http://www.maomao365.com/?p=5323 摘要: 下文主要讲述,如何禁止删除数据表中指定行数据 最近收到用户一个需求,禁止所有人删除"表A"中,ID ...
- Oracle删除表中的重复数据
Oracle数据库删除表中的重复数据,只保留其中的一条,以两个字段为例,提供两种方法 ①.直接delete重复的数据 delete from table_name t1 where (t1.col1, ...
- MySQL之创建函数,一次性插入表中多行数据
MySQL之创建函数,一次性插入表中多行数据 一.MySQL之使用存储过程创建函数,一次性插入表中多行数据 一.MySQL之使用存储过程创建函数,一次性插入表中多行数据 #DELIMITER 的使用 ...
- SQL Server 使用DELETE 语句删除表中的记录两种情况(删除符合条件的记录,删除所有记录)
1 使用详解 DELETE 语句 说明:用于删除表中的记录. 语法: DELETE FROM table_name [WHERE some_column operator some_value]; 2 ...
- MYSQL 删除表中的重复数据
test表中的原始数据: test表中name字段信息有重复,想进行过滤删除重复数据 删除重复数据之后的预期结果(不考虑id): 方法一: 用 create ......select......gro ...
- 在ORACLE中如何删除表中的重复数据
我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样. 一. ...
- sqlserver 删除表中重复的数据
--在删除之前可以先查看一下结果: SELECT max(主键ID),列1,列2...列n FROM [TABLE表] group by 列1,列2...列n--删除重复的数据,保留主键最大的那条数据 ...
最新文章
- url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介
- yum 安装php7和相关扩展
- 2014/School_C_C++_B/2/调和级数
- Tomcat 8.5.29启动报TldScanner.scanJars错误问题解决办法
- .NET Core 微服务学习与实践系列文章目录索引(2019版)
- 作者:唐华(1973-),男,华南师范大学软件学院院长助理、副教授。
- SharePoint 调查列表的自定义错误页面
- AI 实战:GPS实景识别网络项目(源码共享)
- http请求 405错误 方法不被允许 (Method not allowed)
- luogu 2411 白银莲花池 luogu 1606 Lilypad Pond
- Inferred type 'S' for type parameter 'S' is not within its bound
- 唤醒手腕Python全栈工程师学习笔记(微机实验篇)
- numpy中的log和ln函数
- 哔哩哔哩 BV、AV互转 Java版
- jquery的优势是什么?
- 知识管理的唯一出路:与业务融合,构建情景化知识管理体系
- 2020联发科技笔试面试经验
- 【管理者】精读德鲁克教授《卓有成效的管理者》(一)
- 基于Android的3G手机网络摄像机客户端软件设计
- 记录自己考研二战失败后找工作的经历
热门文章
- 补3.31 部分成果以及上周的工作
- JAVA修饰符类型(public,protected,private,friendly)
- CentOS安装tomcat
- 中移动TD终端资助或只限五洋巨头
- 路由过滤之 Route-map Distribute-list
- 用 Flask 来写个轻博客 (33) — 使用 Flask-RESTful 来构建 RESTful API 之二
- Linux_Rsync远程同步备份服务器
- Zeal编程查询,离线文档浏览器
- NR 5G UE初始接入流程
- SqlBulkCopy与触发器,批量插入表(存在则更新,不存在则插入)