社区
MS-SQL Server 帖子详情 现在在SQL里使用delete in无法删除了。为什么? xlxcn 2009-07-20 04:35:07 今天突然发现,我的一个系统里,用这样的语句不能删除信息,语句如下:
delete from tabneName where id in(2,3,4,5,6)
这样的语句我以前可以用的,今天不知道怎么的,删除不了。
后来把语句放到SQL查询分析器里运行,提示:
服务器: 消息 512,级别 16,状态 1,过程 UserTable,行 18
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
语句已终止。
不知道是什么原因。
...全文
1870 15 打赏 收藏 现在在SQL里使用delete in无法删除了。为什么? 今天突然发现,我的一个系统里,用这样的语句不能删除信息,语句如下: delete from tabneName where id in(2,3,4,5,6) 这样的语句我以前可以用的,今天不知道怎么的,删除不了。 后来把语句放到SQL查询分析器里运行,提示: 服务器: 消息 512,级别 16,状态 1,过程 UserTable,行 18 子查询返回的值多于一个。当子查询跟随在 =、!=、<、、>= 之后,或子查询用作表达式时,这种情况是不允许的。 语句已终止。 不知道是什么原因。 复制链接
扫一扫 分享 转发到动态 举报 AI 作业
写回复 配置赞助广告取 消
确 定
用AI写文章 15 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 中国风 2009-07-21 打赏举报 回复 刪除一條記錄時沒問題,有多條記錄時會出錯 中国风 2009-07-21 打赏举报 回复 語句沒問題,表存在觸發器
如:
create trigger del_tableName on TableName
for delete
as
declare @i int
set @i=(select ID from deleted) chenyongpan11 2009-07-21 打赏举报 回复 感觉一天删除语句只能删除指定的,不能一下子删除多条,还有in(, , ,)表示的是一个范围 xlxcn 2009-07-21 打赏举报 回复 已解决。 xlxcn 2009-07-21 打赏举报 回复 哦,明白了。我来查查。 cqq_chen 2009-07-20 打赏举报 回复 触发器问题!仔细查查...... htl258_Tony 2009-07-20 打赏举报 回复 语句没问题,估计是楼主的表有触发器,才受到相关限制. SQL77 2009-07-20 打赏举报 回复 delete from tabneName where CHARINDEX(LTRIM(ID),'2,3,4,5,6')>0 xlxcn 2009-07-20 打赏举报 回复 我ID是主键,自动编号的,怎么会有两个一样的ID?我改成其他多个不同ID号,都不行。
除非后面只有一条,如:
delete from tablename where id in(3)这样就能删除 -狙击手- 2009-07-20 打赏举报 回复 你的delete操作触发了触发器了吧,查你 表上的触发器 jjx5373 2009-07-20 打赏举报 回复 那也不对啊,你用的是SQL 语句,
用企业管理器的时候,会出现问题,语句应该没有问题的. jjx5373 2009-07-20 打赏举报 回复 我想,你用的应该是SQL SERVER 2000
如果是的话:
当表中两条记录完全一样的时候, 你做删除操作,他会报这个错误.
xlxcn 2009-07-20 打赏举报 回复 同样的错误。
我唯一做的就是把升级了一下系统补丁。SQL2000
具体错误:
(所影响的行数为 1 行)
(所影响的行数为 0 行)
(所影响的行数为 3 行)
服务器: 消息 512,级别 16,状态 1,过程 UserTable,行 18
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
语句已终止。 --小F-- 2009-07-20 打赏举报 回复 delete from tabneName where id in('2','3','4','5','6') fwacky 2009-07-20 打赏举报 回复
---你写错了吧!
Golang sqlx 使用sql语句 Where in 解决办法 方法1、使用语言的for语句循环生成SQL语句中的“?”,类似这样:
新建方法
func placeholders(n int) string {
var b strings.Builder
for i := 0; i 0 {
b.WriteString("?")
}
return b.String()
}
调用方法:
var ids []interface{}
err := c.BindJSON(&ids)
query := fmt.Sprintf("delete from device where id in (%s)", placeholders(len(ids))) 数据库操作(使用FMDB) http://blog.csdn.net/xyz_lmn/article/details/9312837
iOS学习笔记——数据库操作(使用FMDB) mysql delete in 结果集,MySQL delete SQL 常见错误 where 条件中表名使用了别名delete from student m where m.id = 1;错误:[Err] 1064 - You have an error in your SQL syntax;分析:delete from table 这样的 SQL 中 table 不能使用别名。解决方法:delete from student where id = 1;where 条件里有子查... 精准删除:掌握SQL中的DELETE语句 其中,DELETE语句是用于从数据库表中删除数据的重要工具。本文将详细解释如何使用SQL的DELETE语句来删除数据,并提供实际的代码示例,帮助你精确控制数据的删除过程。通过本文的介绍,你应该能够理解DELETE语句的用法,并学会如何在实际应用中安全、有效地删除数据。掌握SQL中的DELETE语句,将使你能够更加精准地控制数据的生命周期,为你的数据管理和分析提供坚实的基础。软删除是一种删除策略,通过设置一个标志位而不是真正从数据库中删除数据。这将标记ID为1的客户记录为已删除,而不是真正从数据库中删除。 sql中delete不能删除select的结果集 delete语句是用来删除数据库中的数据的,而select查询语句是用来查询数据的。delete语句删除数据的操作是基于表的,而不是基于查询的结果。因此,无法直接使用delete语句删除select查询的结果。要删除select查询结果中的数据,你可以将查询的结果保存到一个临时表中,然后再使用delete语句删除临时表中的数据。或者使用其他方式来处理查询结果,例如使用其他编程语言或工具来操纵数据库。title: sql中delete不能删除select的结果集。原始的写法,报错如下。
MS-SQL Server
34,837
社区成员
254,632
社区内容
发帖 与我相关 我的任务 MS-SQL Server MS-SQL Server相关内容讨论专区 复制链接
扫一扫 分享 确定 社区描述 MS-SQL Server相关内容讨论专区 社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告 试试用AI创作助手写篇文章吧
+ 用AI写文章