Insert into Select不会正确插入相同的数据顺序

时间:2015-07-30 10:45:40

标签: sql sql-server

我在SQL Server 2014中使用了insert into命令,但没有按照相同的数据顺序插入。

它显示的行数相同,但数据顺序与您在下图中看到的数据顺序不同。

insert命令是:

insert into [test].[dbo].[HöjdKortvågVänster] ([Höjd kortvåg vänster (null)]) select [Höjd kortvåg vänster (null)] from [test].[dbo].[test111]

图1:选择源表的命令

enter image description here

图2:选择目标表的命令

enter image description here

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:5)

除非您有order by,否则SQL结果集是无序的。 SQL表是无序的。

但是,SQL Server确实提供了至少一种方法来执行您想要的操作。如果您在order by的表格中使用identity selectorder by,则身份会相应增加。< / p>

所以,做你想做的事情的一种方法是在[HöjdKortvågVänster]

中加上列
id int not null identity(1, 1) primary key

insert into [test].[dbo].[HöjdKortvågVänster]([Höjd kortvåg vänster (null)]) 
    select [Höjd kortvåg vänster (null)]
    from [test].[dbo].[test111]
    order by <appropriate column here>;

然后当您查询表格时,请记住order by

select *
from [test].[dbo].[HöjdKortvågVänster]
order by id;