2016-09-28 45 views
0

我有一個SQL Server表與模式如何將我的表格的內容拆分爲兩個帶有索引的表格?

varchar type, 
varchar id, 
int date, 
varchar(MAX) data 

我想數據列分割成其自己的表,並給它,我會放在我的現有表的唯一索引(改變接受一個int而不是數據的varchar(max))

如何選擇所有行並將data列插入到一個表中,然後採用新創建的auto_incremented id並將其餘列插入另一個具有auto_incremented的表id作爲新的第4列?

+0

是'data' unique,還是可以重複? –

+1

你可以利用這個OUTPUT子句。 https://msdn.microsoft.com/en-us/library/ms177564.aspx –

+0

@MarcB理論上它可以重複,但它不是我想關注唯一性的東西。 –

回答

1

將表移動到帶有標識列的新臨時表。從該表中,首先創建您的新數據表,然後再次創建第二個表。

declare @OriginalTable (type varchar, id Varcher,date int, data varchar(MAX)) 
declare @TempTable (Ident int identity(1,1), type varchar, id archer,date int, data varchar(MAX)) 

insert into @TempTable (type, id, date, data) select * from @ OriginalTable 

-- Create the Split tables 
select ident, type, id, date into @Table1 From @TempTable 
select ident, data into @Table2 From @TempTable 
相關問題