Как я могу выбрать верхние 500 строк из таблицы1 и вставить их в таблицу2? - PullRequest
4 голосов
/ 29 декабря 2011

У меня полностью определены две таблицы: t2 и t1.

t2 имеет 1000 строк, а t1 полностью пуст.t1

Ответы [ 4 ]

12 голосов
/ 29 декабря 2011

Я буду использовать «emptyTable» и «populatedTable», потому что вопросы сбивают с толку

Важно TOP без ORDER BY дает 500 произвольных строк.Подразумеваемый или естественный порядок для таблицы никогда не существует

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

Отсутствие списка столбцов здесь обычно определяется как плохая практика, но работает, только если

  • таблицы идентичны
  • в emptyTable нет столбца IDENTITY

Редактировать:

ORDER BY равен требуется для гарантии порядка строк.Смотрите это.Это также в стандарте ANSI

5 голосов
/ 29 декабря 2011

Примерно так:

INSERT INTO t1
SELECT TOP 500 * FROM t2

Вы выбираете 500 лучших и вставляете их.

3 голосов
/ 29 декабря 2011
insert t2(fieldslist)
select top 500 fieldslist from t1
2 голосов
/ 29 декабря 2011

Если обе таблицы имеют одинаковую схему, это просто:

INSERT INTO t1
SELECT TOP 500 * 
FROM t2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...