我有1條000 000記錄的表:如何將表格複製到另一個表格?
CREATE TABLE [dbo].[x2](
[session_id] [uniqueidentifier] NOT NULL,
[node_id] [uniqueidentifier] NOT NULL,
[id] [int] IDENTITY(1,1) NOT NULL,
CONSTRAINT [PK_x2] PRIMARY KEY CLUSTERED
(
[id] ASC
));
我需要更換現場
[id] [int] IDENTITY(1,1)
與
[id] [bigint] IDENTITY(1,1)
但是,所有數據(包括ID值)應爲複製到新表和id應該是IDENTITY但bigint。
我創建新表
CREATE TABLE [dbo].[x2_new](
[session_id] [uniqueidentifier] NOT NULL,
[node_id] [uniqueidentifier] NOT NULL,
[id] [bigint] IDENTITY(1,1) NOT NULL,
CONSTRAINT [PK_x2_new] PRIMARY KEY CLUSTERED
(
[id] ASC
));
,並試圖複製數據:
insert into x2_new(session_id,node_id,id)
select session_id,node_id,id from x2;
但它是緩慢的。如何更快地將數據複製到新表中?
定義慢嗎?在被索引的表上插入一百萬條記錄的速度不會像沒有編入索引的表那樣快,當然 – scsimon
是的,但另一方面,這個查詢從t選擇到t1比插入()select ...來自。但我不能使用它,因爲身份字段 – Oleg
一個更快的方法是放棄約束和索引,並簡單地改變表列的類型。 – scsimon