我有完全相同的2个表:t2和t1。
t2有1000行,t1完全为空。
如何从t2中选择前500行并将它们插入到t1?
答案 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
此处缺少列列表通常被定义为不良做法,但仅在
时才有效编辑:
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