2011-02-17 34 views
0

我有一個表,如:得到一個表的一部分,並得到2和表1被更新的SQL Server

id NameColumn 
------------- 
1 var 
2 var2 
3 var3 
4 var4 
5 var5 
... ... 
n varn 

有沒有一種方法可以讓我得到這個表,說的部分,第3,和到表(第二個領域 '身份證' 被更新),如:

表1:

id NameColumn 
------------- 
1 var 
2 var2 
3 var3 

TABLE2:

id NameColumn 
------------- 
1 var4 
2 var5 
3 var6 
4 var7 
... ... 
n varn 
+0

您是否正在查詢/查看?或者你是否希望從1開始創建一個新的表格? – 2011-02-17 04:59:57

+0

創建一個新的表,其身份從1開始,獲得2個表格,更新第一個並創建第二個 – cMinor 2011-02-17 05:00:50

+0

確定,因此您希望創建第二個表格並將某些項目從第一個表格移動到第二個表格。是否有任何具體的標準來確定哪些行應該移動? – 2011-02-17 05:02:27

回答

1

看一看這個例子腳本。這是你想到的嗎?

DECLARE @Table1 TABLE(
     ID INT IDENTITY, 
     Name VARCHAR(20) 
) 
DECLARE @Table2 TABLE(
     ID INT IDENTITY, 
     Name VARCHAR(20) 
) 
INSERT INTO @Table1 (Name) SELECT 'A' 
INSERT INTO @Table1 (Name) SELECT 'B' 
INSERT INTO @Table1 (Name) SELECT 'C' 
INSERT INTO @Table1 (Name) SELECT 'D' 

DECLARE @N INT 
SELECT @N = 2 

INSERT INTO @Table2 
SELECT Name 
FROM @Table1 t1 
WHERE ID NOT IN (
         SELECT TOP (@N) 
           ID 
         FROM @Table1 
         ORDER BY ID 
        ) 
DELETE FROM @Table1 
WHERE ID NOT IN (
        SELECT TOP (@N) 
          ID 
        FROM @Table1 
        ORDER BY ID 
       ) 

SELECT * 
FROM @Table1 
SELECT * 
FROM @Table2 
0

試試這個..

表1:

SELECT TOP 3 * 
    FROM <YOUR_TABLE> 
ORDER BY ID 

TABLE2:

SELECT * 
    FROM ( 
     SELECT ROW_NUMBER() OVER(ORDER BY ID) AS ID, 
       NameColumn 
      FROM <YOUR_TABLE> 
     ) 

要插入到新表的嘗試:

INSERT INTO <YOUR_NEW_TABLE> 
    SELECT * 
     FROM ( 
      SELECT ROW_NUMBER() OVER(ORDER BY ID) AS ID, 
        NameColumn 
       FROM <YOUR_TABLE> 
      )