急!!!!bulk insert语句导数据到表中,如果数据量稍大,怎么会把文本里的内容顺序打乱?有什么办法可以解决吗?

Fred_Mark 2006-03-21 03:09:53
请各位高手指教,小弟数据大概866 KB左右,但是查询出来的数据顺序已经变了。。

Create table #tempXML (line varchar(8000))
BULK INSERT #tempXML FROM 'f:\sql\151826.xml'
WITH (
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
select * from #tempXML

谢谢!!
...全文
157 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Fred_Mark 2006-03-21
那我现在怎么样加上这个索引呢?因为字段是有重复的,不能设置主键的,刚才测试过了,加了一个自增长字段还是不行...急..
回复
Fred_Mark 2006-03-21
表中只有一个字段,没有排序列,既然按照顺序插入,怎么select出来的时候错误呢?

刚刚试过了,如果文件大小小于100kb就不会出错哦,但是bulk insert的参数不能使动态的啊..

declare @frow int
declare @lrow int
set @frow = 0
set @lrow = 2000

Create table #tempXML (line varchar(8000))
BULK INSERT #tempXML FROM 'f:\sql\151826.xml'
WITH (
FIRSTROW = @frow,
LASTROW = @lrow
)
select * from #tempXML
---------------------------
Server: Msg 170, Level 15, State 1
Line 10: Incorrect syntax near 'FIRSTROW'.
回复
lsqkeke 2006-03-21
请注意:
表中数据的物理存储顺序是由聚集索引决定的!
查询表时,如果不显示指定order by,那么显示顺序是有非聚集索引决定的
如果表中有主键(默认聚集索引),没有其它索引了,那么显示出的顺序就是你插入时的顺序
但如果表中没有任何索引,也没有主键,查询时的顺序是无序的!与你插入顺序无关

虽然bulk insert 数据插入数据库,是按照文件中记录的先后插入的,
但 select 时是无序的 所以数据顺序改变了
回复
huailairen 2006-03-21
没有排序列吗?
有排序列的话可以按排序列排序
没有排序列怎么会乱了呢?
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-03-21 03:09
社区公告
暂无公告