如何实现删除

来源:百度知道 编辑:UC知道 时间:2024/09/25 20:29:04
我要删除一批记录(大约3条),代码为

delete from 预约明细 where 索书号='A15/1008',

由于符合的条件有3条,在删除的时候提示“子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。语句已终止。”

请问如何才能实现此功能?
尽管索书号是唯一的,但是符合条件的是3条啊~

1.
语句写得没有问题。
2.
检查一下您输入命令的位置的上下文,最好全部清除了后,再打入这一条件语句。估计您是与其它语句混在一起造成的错误。
3.
在MSSQL查询分析器中可以选中后只执行选中的语句,您试试吧。
=================
没有设置主键,记录完全相同,使用语句删除也完全可以删除。
我想,可能有两种可能性,一是上面说的,与其它语句混了。还有就是看看该表是否有删除触发器,可能是触发器中的语句出的问题。您可以先关掉触发器,删除成功后再加入。

书号是唯一的吧。用OR就是了
OR 索书号='A15/1009'

delete from 预约明细 where 索书号 like 'A15/1008';

先通过查询看看有几条,这句要慎用,如果还是3条在执行
delete from 预约明细 where 索书号 like 'A15/1008';

这个应该是别的问题不是语句的原因,数据库完全可以支持多条记录的删除

这是由于你的数据表没有设置主键造成的,是这3条记录是完全一样的,导致不能通过索书号='A15/1008'去定位到具体的记录,应该需要设置好数据库的主键,这样不会出现完全重复的记录,呵呵,希望能有帮助,^_^