나는 최근에 내 데이터베이스 구조를 변경하고 지금은 새로운 I 방금 만든 사람 (Orders
및 Orders_Transfer
) 내 이전 테이블 Transfers
에서 복사 할 :한 테이블에서 다른 테이블로 데이터를 복사하는 데 필요한 쿼리는 무엇입니까?
--old table to copy from
-- table 'Transfers'
CREATE TABLE [dbo].[Transfers] (
[Id] int IDENTITY(1,1) NOT NULL,
[Date] datetime NOT NULL,
[Memo] nvarchar(max) NULL,
[Employee_Id] int NULL,
[InventoryFrom_Id] int NOT NULL,
[InventoryTo_Id] int NOT NULL,
);
-- new tables to copy to
-- table 'Orders'
CREATE TABLE [dbo].[Orders] (
[Id] int IDENTITY(1,1) NOT NULL,
[Date] datetime NOT NULL,
[Memo] nvarchar(max) NULL,
[Employee_Id] int NULL
);
-- Creating table 'Orders_Transfer'
CREATE TABLE [dbo].[Orders_Transfer] (
[Id] int NOT NULL,--foreign key on Orders.Id
[InventoryFrom_Id] int NOT NULL,
[InventoryTo_Id] int NOT NULL
);
내가 이전 Transfers
테이블을 통해 반복 할 복사 일부는 Orders
(날짜, 메모, 직원)이고 나머지는 Orders_Transfer
(InventoryFrom_Id, InventoryTo_Id)입니다. Id
열 Orders_Transfer
또한 Orders.Id
의 FK입니다. 그래서 자동 생성 값도 복사하고 싶습니다. scope_identity()
함수와 OUTPUT
절에 대해 읽었지 만 저는 SQL 초보자이며 모든 것을 조합 할 수는 없습니다.
저는 SQL Server 2008을 사용하고 있습니다.
이 작업을 수행하는 데 필요한 쿼리는 무엇입니까? 어떤 도움을 주시면 감사하겠습니다.
INSERT INTO [dbo].[Orders]
(
[OldId],[Date],[Memo],[EmployeeID]
)
SELECT [Id] AS [OldId],[Date],[Memo],[EmployeeID]
FROM [dbo].[Transfers];
복사 OldId를 사용하여 나머지 데이터 :
ALTER TABLE [dbo].[Orders] ADD [OldId] INT;
그런 다음 이전 데이터에 복사 :
이 아주 교활, 좋아 보인다, – agugglez