2013-08-07 37 views
0

你好,我有表ID,LongID,Categoty,Priority列和樣本數據是這樣的:如何複製/ SQL Server中的重複行2008

ID  LongID  Category Priority 
------------------------------------ 
218  2432  301  1 
222  2445  301  2 
205  2416  301  3 
214  2425  302  1 
    5  1079  302  2 
152  2388  302  3 
143  2382  303  1 
89  2263  303  2 
126  2375  303  3 

我建立一個重複的功能,例如:如果我目前在301類別並按重複我會找到下一個可用的類別ID(類別最大)+1意味着304和301 categoty複製所有行304

ID  LongID  Category Priority 
    218  2432  301  1 
    222  2445  301  2 
    205  2416  301  3 
    214  2425  302  1 
    5  1079  302  2 
    152  2388  302  3 
    143  2382  303  1 
    89  2263  303  2 
    126  2375  303  3 
    218  2432  304  1 <-new 304 
    222  2445  304  2<-new 304 
    205  2416  304  3<-new 304 

我怎樣才能做到這一點?

回答

3

您可以使用INSERT..SELECT語法輕鬆完成。

DECLARE @newCat INT 
SELECT @newCat = COALESCE(MAX(Category),0)+1 FROM YourTable 

INSERT INTO YourTable (ID, LongID, Category, Priority) 
SELECT ID, LongID, @newCat, Priority 
FROM YourTable WHERE Category = 301 
0
INSERT INTO YourTable (ID, LongID, Category, Priority) 
SELECT ID, LongID, @newCat, Priority 
FROM YourTable WHERE Category = your_id