distinct 后重复问题

jwwyqs 2016-08-16 05:30:44
第一个存错过程里面建立临时表
create table #tb(.......)
并且调用“存储过程b”更新临时表数据
最后将处理后的临时表数据存入正式表

被调用的“存错过程b” 主要内容如下
主要是查询数据并插入临时表
1.插入主键字段
insert into #tb
select distinct 联合主键字段 from ...
2.更新非主键字段
update #tb 表 非联合主键字段

现在比较头大的事 明明用了distinct 联合主键字段 应该不会重复才对,
问题是出现了重复记录 不知道是怎么产生的,请问各位大神有没有遇到过
第一个存错过程执行差不多要一个小时左右,不知道是临时表问题还是distinct问题
...全文
311 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
giftsf 2016-08-19
  • 打赏
  • 举报
回复
很显然 你只是控制了 #tb表是不重复的 正式表并不能保证 distinct不可能有重复的.
LongRui888 2016-08-19
  • 打赏
  • 举报
回复
引用 5 楼 jwwyqs 的回复:
抱歉昨天有事没上网,我再描述下 功能其实很简单的,就是主存错过程调用子存错过程更新临时表数据然后插入实体表 主要步骤如下 1.主存错过程调用子存错过程(临时表建立在主存错过程) 2.子存错过程先插入主键字段 insert into 临时表(只有主键字段) select distinct 主键字段 from 查询逻辑 3.子存错过程更新临时表非主键字段外的其他字段 4.主存错过程调用完子存错过程后将临时表数据导入实体表,导入前先删除实体表相关内容 主存错过程执行超过半小时,现在就是不知道为什么加了 distinct 后还会出现主键重复
你能举个具体的重复例子吗,你的联合主键是多个字段,通过去重之后,还是出现了重复值,最好能贴出来,让大家看看到底是什么问题
xiaoxiangqing 2016-08-19
  • 打赏
  • 举报
回复
检查一下数据,
TurboWay 2016-08-18
  • 打赏
  • 举报
回复
可能问题是重复插入,而非查询重复
jwwyqs 2016-08-17
  • 打赏
  • 举报
回复
抱歉昨天有事没上网,我再描述下 功能其实很简单的,就是主存错过程调用子存错过程更新临时表数据然后插入实体表 主要步骤如下 1.主存错过程调用子存错过程(临时表建立在主存错过程) 2.子存错过程先插入主键字段 insert into 临时表(只有主键字段) select distinct 主键字段 from 查询逻辑 3.子存错过程更新临时表非主键字段外的其他字段 4.主存错过程调用完子存错过程后将临时表数据导入实体表,导入前先删除实体表相关内容 主存错过程执行超过半小时,现在就是不知道为什么加了 distinct 后还会出现主键重复
卖水果的net 2016-08-16
  • 打赏
  • 举报
回复
你的原表是什么样的呢,数据又是什么样的呢? 你的哪些值又重复了? 建议都贴出来;
Ginnnnnnnn 2016-08-16
  • 打赏
  • 举报
回复
那到底你的#tb 里面是否除了联合主键的字段,还有非联合主键的字段呢?如果有非主键字段,distinct 没有去重到也是很正常的结果
中国风 2016-08-16
  • 打赏
  • 举报
回复
这样的描述大家帮不了你 贴出你的完整语句,大家给你分析一下 【SQL Server版块】提问的智慧 http://bbs.csdn.net/topics/391996442
jwwyqs 2016-08-16
  • 打赏
  • 举报
回复
语法和逻辑上分析了半天,实在找不到重复的原因

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧