删除选中的记录,如何写呀?
如图片所示,假设有上图所示的,即从数据库里取的每条记录内容都一样
在界面上选择后,从界面删除,直接删除就可以了,但是
在数据库里也存储了相同的内容,也就说有很多行内容都相同的记录,共3个字段,而这三个字段内容都一样。
如何在删除界面上记录的同时,对应的数据库里也删除掉该记录呢?
------解决方案--------------------给数据库表加个自增列id作为主键
delete from tb where id=所选行的id
------解决方案--------------------借助一个临时表.
select distinct userid,username,useage into tmp from tb
truncate table tb
insert into tb select * from tmp
drop table tmp
------解决方案--------------------1. 虽然页面显示一样的数据,后台表里应该有个主键列的吧?
delete t where 主键列 = ...
2. 如果真的没主键,那就自己编个号了,示例如下:
create table aaa
(
code varchar(100)
)
insert into aaa values('aaa')
insert into aaa values('aaa')
insert into aaa values('aaa')
with t
as
(
select row_number() over(order by code) as num,* from aaa
)
delete t where num = 1
select * from aaa
------解决方案--------------------SELECT DISTINCT * INTO #t
FROM TB
go
TRUNCATE TABLE TB
go
INSERT INTO TB
SELECT * FROM #t
go
DROP TABLE #t
------解决方案--------------------
;with tb as (
select ROW_NUMBER() over (order by userid) as index,*from userinfo
)
delete from tb where index= 1
------解决方案--------------------。。。那个index是关键字。。我是直接在留言板上写的。。。你整个选中 一起执行 不会报错,sql2005或以上
------解决方案--------------------;with raifu1 as ( --------------修改成raifu1
select ROW_NUMBER() over (order by id) as index1,*from ruifu
)
delete from raifu1 where index1= 1 --------------修改成raifu1
你把整个选中(从;with到 最后),在执行