如何从table1中选择前500行并将它们INSERT到table2?

时间:2011-12-29 13:34:16

标签: sql tsql insert

我有完全相同的2个表:t2和t1。

t2有1000行,t1完全为空。

如何从t2中选择前500行并将它们插入到t1?

4 个答案:

答案 0 :(得分:12)

我将使用“emptyTable”和“populatedTable”因为问题令人困惑

没有ORDER BY的

重要 TOP会产生500个任意行。表格从不存在隐含或自然的顺序

INSERT INTO emptyTable
SELECT TOP 500 * 
FROM populatedTable
ORDER BY What -- need this to define TOP 500

此处缺少列列表通常被定义为不良做法,但仅在

时才有效
  • 表格相同
  • emptyTable
  • 中没有IDENTITY列

编辑:

ORDER BY是必需以保证行顺序。看到这些。它也符合ANSI标准

答案 1 :(得分:5)

这样的事情:

INSERT INTO t1
SELECT TOP 500 * FROM t2

您选择前500,并插入它们。

答案 2 :(得分:3)

insert t2(fieldslist)
select top 500 fieldslist from t1

答案 3 :(得分:2)

如果两个表都具有相同的模式,那么它就像:

一样简单
INSERT INTO t1
SELECT TOP 500 * 
FROM t2