为什么这条语句在SQL2005中会运行不了呢?急求解答 40分,无满意结帖,结帖人yangyangxie]

发布时间:2016-12-6 20:20:02 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"为什么这条语句在SQL2005中会运行不了呢?急求解答 40分,无满意结帖,结帖人yangyangxie]",主要涉及到为什么这条语句在SQL2005中会运行不了呢?急求解答 40分,无满意结帖,结帖人yangyangxie]方面的内容,对于为什么这条语句在SQL2005中会运行不了呢?急求解答 40分,无满意结帖,结帖人yangyangxie]感兴趣的同学可以参考一下。

INSERT into table1(a1,a2,a3,a4)  SELECT a1,a2,a3,a4 FROM table2 WHERE  not exists  (select 1 from table1 where  a1=table2.a1  and a2=table2.a2) GO 以上是我写的一条语句,在2000中是可以运行的,换到2005就不行了,不知道什么原因? 查询也是可以的,就是不能插入到表里,但如果只是插入a1,a2这两个字段还是可以运行的. 请问各位还有别的方法解决吗?或是别的写法吗?因为我需要插入的不止这两列, 但是条件只需要那两列加起来不同就可以了,我也试过在两字段之间加空格的方法也不行.

怎么不行了,抱什么错误,贴出来.

报什么错

可能跟字段的大小写有关。 sql2005的库排序规则下,跟sql2000不一样,对象在一些排序规则下是区分大小写的。

同上问,应该不会不行的。看看是什么错误`

没有错误,就是运行不出来,挂个晚上天都没结果,一直在运行

应该可以呀!

我现在又测试了,插入到一个新建的表又可以插入,但是我也只跟新表里的数据比较不同的才插入, 但是为什么插入到已经有数据的表里就不行呢, 其实在table1表里是有100多百万的数据的,而且也建了a1,a2的索引,应该没什么问题啊? 难道跟数据量有关???

我现在又测试了一下在table1(有百万数据的表)只插入a1,a2这两个字段也还是不行,运行十多分钟都没结果,原本只要十来秒就可以运行完的,不知道什么原因啊!!!!!!!!!!!!帮忙顶一下

把这个table2 东西改改,2005里面加入了架构之类的东西,例如 sys.table2之类的。估计是这个问题吧

table1的a1 ,a2加索引了吗

sys.table2什么意思啊? 建了索引了....

引用 11 楼 yangyangxie 的回复:sys.table2什么意思啊?  建了索引了.... 你在2005的帮助里面看一下,他的select语句的书写格式

重新贴一次 INSERT into aaa.dbo.table1(a1,a2,a3,a4)  SELECT a1,a2,a3,a4  FROM bbb.dbo.table2  WHERE  not exists  (select 1 from aaa.dbo.table1 where  a1=table2.a1  and a2=table2.a2)  GO  不明白怎么回事?

引用 13 楼 yangyangxie 的回复:重新贴一次  INSERT into aaa.dbo.table1(a1,a2,a3,a4)  SELECT a1,a2,a3,a4  FROM bbb.dbo.table2  WHERE  not exists  (select 1 from aaa.dbo.table1 where  a1=table2.a1  and a2=table2.a2)  GO  不明白怎么回事? 应该是因为你的数据量太大,所以插入很长时间都没反应。 你运行这个语句,看看耗费多长时间 SELECT a1,a2,a3,a4  FROM bbb.dbo.table2  WHERE  not exists  (select 1 from aaa.dbo.table1 where  a1=table2.a1  and a2=table2.a2) 

重建Table1上的聚集索引。

背着灵魂漫步 在SQL2000里只要几秒就可以出来了

引用 16 楼 yangyangxie 的回复:背着灵魂漫步  在SQL2000里只要几秒就可以出来了 你现在不是在2005上插入不了吗?那你就在2005上查询看耗费多少时间噢` 可能你的2000和2005这两个环境上的索引不一样。。

在SQL2005查询8分钟就可以出结果的, ---其实在SQL2000里只要半分钟不到就可以完成的

有没有人知道原因啊???

问题重复一下 INSERT into table1(a1,a2,a3,a4)  SELECT a1,a2,a3,a4  FROM table2  WHERE  not exists  (select 1 from table1 where  a1=table2.a1  and a2=table2.a2)  GO  table1是个百万条数据的表,而且建了a1,a2的索引;table2是个视图,数据在1千条左右. 以上是我写的一条语句,在2000中是可以运行的,只需要半分钟就可以运行完毕, 换到2005查询是可以的,大概是10分钟左右,但是插入就不会成功,时间无限长,运行不完. 请问问题出在哪里呢??

终于成功了一次了,但是为什么结果会慢这么多呢? 我刚刚运行用了28分钟才插入了,以前还从来没插入成功过, 真是怪,我反反复复删了好几次索引又重建了,聚集和非聚集试了几次, 这是第一次成功插入的,不知道什么原因???

ding

是因为数据量太大的原因啊,并不是语句有什么原因。

有没有解决的办法啊?

上一篇:关于库表散列的应用 50fredrickhu]
下一篇:SSIS三种CACHE模式的使用,以及各自的利弊 0分,无满意结帖,结帖人xiaolitnt]

相关文章

相关评论