曾经有个达思sql数据库修复软件的用户在恢复用友数据库时,还原到用友环境时,发现菜单重复,一个按钮变出好几个相同的按钮,就像孙悟空拔出毫毛变出好多个小孙悟空,一直在捉弄那个不会处理重复数据的抓耳挠腮的老妖精。本文介绍处理重复数据的处理方法。
一、找出可以插入重复数据的表
use [你要处理的数据库]
-----------------------------------------------------------------------------------
select id,name from sysobjects where id in(
SELECT object_id FROM sys.indexes where object_id not in(
SELECT object_id FROM sys.indexes where is_unique=1 or is_primary_key=1 or is_unique_constraint=1)
) and xtype='U' order by name
-----------------------------------------------------------------------------------
再次过滤出哪些表存放有数据
-----------------------------------------------------------------------------------
SELECT object_name (i.id) TableName,
rows as RowCnt
FROM sysindexes i
INNER JOIN sysObjects o
ON (