我最近更改了我的数据库结构,现在我想从旧表复制到Transfers
我刚刚创建的新表(Orders
和Orders_Transfer
):
--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
(Date、Memo、Employee),其余部分复制到Orders_Transfer
(InventoryFrom_Id、InventoryTo_Id)。中的Id
列Orders_Transfer
也是一个 FK,Orders.Id
所以我也想复制自动生成的值。我阅读了有关scope_identity()
函数和OUTPUT
子句的信息,但我是 SQL 的初学者,无法将它们放在一起。
我正在使用 SQL Server 2008
我需要做什么查询?任何帮助将不胜感激,谢谢!