sql2005 如何删除各表内1000条后的信息,请给出命令.

如sql2005下有数据库aaa

aaa下有表bbb,ccc,ddd,且各表字段,内容不一样.

现在要把bbb,ccc,ddd等aaa下的所有表格里的,从第1000条以后的数据都要删除.
各表只保留第1-1000条数据内容.

请问SQL语句怎么写??

delete from [表] where [表的主键] not in(select top 1000 [表的主键] from [表])
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-23
那么请问你的数据有什么规则吗?比如按照某列建索引了吗?前1000条的数据你是怎么来判断的, 用row_num函数给所有记录标记顺序号然后删除相应顺序的记录即可。你用select * from bbb 查询出来的记录也不一定和你现在数据库里记录顺序一样。
删除的话可以使用临时表
第2个回答  2010-09-23
drop * from aaa where not in (select top 1000 * from aaa where 条件)

delete 是删除表中记录的
drop 是删除表、数据库的