У мене дві однакові таблиці, і мені потрібно скопіювати рядки з таблиці в іншу. Який найкращий спосіб це зробити? (Мені потрібно програмно скопіювати лише кілька рядків, мені не потрібно користуватися утилітою масового копіювання).
Відповіді:
Поки немає стовпців ідентичності, ви можете просто
INSERT INTO TableNew
SELECT * FROM TableOld
WHERE [Conditions]
SET IDENTITY_INSERT < table > ON(і SET IDENTITY_INSERT < table > OFF) для тимчасового вимкнення стовпця ідентифікації в таблиці, яку ви намагаєтесь вставити. Працював для мене, намагаючись відновити кілька відсутніх записів у середині набору даних.
Альтернативний синтаксис:
INSERT tbl (Col1, Col2, ..., ColN)
SELECT Col1, Col2, ..., ColN
FROM Tbl2
WHERE ...
Запит select може (звичайно) включати вирази, твердження регістру, константи / літерали тощо.
Відповідь Джарретта створює нову таблицю.
Відповідь Скотта вставляється в існуючу таблицю з такою ж структурою.
Ви також можете вставити в таблицю з різною структурою:
INSERT Table2
(columnX, columnY)
SELECT column1, column2 FROM Table1
WHERE [Conditions]
INSERT INTO DestTable
SELECT * FROM SourceTable
WHERE ...
працює в SQL Server
SELECT * INTO < new_table > FROM < existing_table > WHERE < clause >
SELECT * INTO [SQLTEST].[dbo].[EMPLOYEES] FROM [SQLPROD].[dbo].[EMPLOYEES]