to: Leftie(Leftie) 以前都正常,我实验N次,非偶然,如果是丢失也想知道为什么导致丢失了啊,我不只是在程序内调试的,也在企业管理器里调试过 to: caiyunxia(monkey) 我没有明白你说的意思,你说的有可能,但系统应该自动截取了,和我的语句关系不大,select语句能返回,只是不能into 某表 to: CrazyFor(蚂蚁) 我修改的是table的字段长度,全部为varchar,并且改长度不会影响原因来,因为即使我改长度也比实际内容要长
我一直没有在查询分析器里调试,可能是方式问题,五分钟过去还没有返回数据(select a,b from table),在管理器的视图里几秒就返回数据了,只是加上into #tmp就不灵了,最后提示错误,在未把部分字段改短前几秒就处理完毕了(into #tmp)
将记录数减少。如: select top 10 a,b from table select top 10 a,b into #temp from table select * from #temp 再增加: top 100, top 500, top 1000, top 5000, top 10000, top 50000, top 100000, top 116000 寻找原因。
在改变字段前后,有无删除临时表? 感觉是数据库缓存管理有问题,缓存这东西不知道怎么手动管理。如果不用临时表就应该不会有问题。 试试在查询分析器中进行下面的操作顺序 改变字段长度前 select * into #tmp from yourtbl select * from #tmp drop table #tmp 关闭查询分析器数据库连接 改变字段长度 连接数据库,再执行下面语句。 select * into #tmp from yourtbl select * from #tmp drop table #tmp 看看有没有问题?
感谢楼上四位,我已经测试过了,处理记录少时没有问题 to: blackhawk_yps(原来是这样) 不是临时表名冲突问题,这个我编程和测试时想到了其实这个问题的重点是我产生了很多迷感,使我对何时该怎么做产生了疑问,因为问题太简单(表面上)如果原来表结构不改程序也正常运转,我已经把过程时间控制在15秒内了(处理数据,返回数据,手动向网络填加数据,及其它判断),由于原结构浪费了大量资源,字段长度长出X倍-XX倍,所以我改了很多字段长度,改后其实还有很大容余如果只是为了不产生错误,我不改动长度就OK了,只是改小了却产生了问题(未改类型结构),我不明白原因,请各位大虾帮助想下这是什么原因造成的 万分感谢
说明数据库版本,包括SP(SELECT @@VERSION),说明表有无触发器。6.5(SP5)有类似的很多问题,改表结构后SELECT INTO 、触发器、相关的存储过程都有可能 我发现更多的是触发器的问题,会造成触发器运行不会结束,也不能删除(因为在运行)6.5(SP3)没有上述问题2000没有发现过这个问题
版本信息: Microsoft SQL Server 2000 - 8.00.194 (Intel X86) Aug 6 2000 00:57:48 Copyright (c) 1988-2000 Microsoft Corporation Desktop Engine on Windows NT 5.0 (Build 2195: Service Pack 3) 谢谢楼上,我再做进一步的测试
to: caiyunxia(monkey) 我没有明白你说的意思,你说的有可能,但系统应该自动截取了,和我的语句关系不大,select语句能返回,只是不能into 某表
to: CrazyFor(蚂蚁) 我修改的是table的字段长度,全部为varchar,并且改长度不会影响原因来,因为即使我改长度也比实际内容要长
或者#tmp该名#temp看看。
select top 10 a,b from table
select top 10 a,b into #temp from table
select * from #temp
再增加:
top 100,
top 500,
top 1000,
top 5000,
top 10000,
top 50000,
top 100000,
top 116000
寻找原因。
感觉是数据库缓存管理有问题,缓存这东西不知道怎么手动管理。如果不用临时表就应该不会有问题。
试试在查询分析器中进行下面的操作顺序
改变字段长度前
select * into #tmp from yourtbl
select * from #tmp
drop table #tmp
关闭查询分析器数据库连接
改变字段长度
连接数据库,再执行下面语句。
select * into #tmp from yourtbl
select * from #tmp
drop table #tmp
看看有没有问题?
to: blackhawk_yps(原来是这样) 不是临时表名冲突问题,这个我编程和测试时想到了其实这个问题的重点是我产生了很多迷感,使我对何时该怎么做产生了疑问,因为问题太简单(表面上)如果原来表结构不改程序也正常运转,我已经把过程时间控制在15秒内了(处理数据,返回数据,手动向网络填加数据,及其它判断),由于原结构浪费了大量资源,字段长度长出X倍-XX倍,所以我改了很多字段长度,改后其实还有很大容余如果只是为了不产生错误,我不改动长度就OK了,只是改小了却产生了问题(未改类型结构),我不明白原因,请各位大虾帮助想下这是什么原因造成的 万分感谢
我发现更多的是触发器的问题,会造成触发器运行不会结束,也不能删除(因为在运行)6.5(SP3)没有上述问题2000没有发现过这个问题
Microsoft SQL Server 2000 - 8.00.194 (Intel X86)
Aug 6 2000 00:57:48
Copyright (c) 1988-2000 Microsoft Corporation
Desktop Engine on Windows NT 5.0 (Build 2195: Service Pack 3)
谢谢楼上,我再做进一步的测试
to:Rewiah(乘长风) 我上面已经写时安装了sp3,具体原因现在还不太清楚
问题以后我自己慢慢找吧,此贴先结了
感谢大家