2013-06-19 97 views
0

我想表2值插入到表1拿一個表中的值,並將其插入到另一個表

我的表

表1

 Month Gender State Load  DepartmentID DeptName Count1 Count2 Count3 
     Jan Male  va FullTime 100   HR   2  0  1 
     Jan Male  VA PartTime 100   HR   1  3  13 
     Jan Female  Va FullTime 100   HR   2  1  21 
     Jan Female  VA PartTime 100   HR   0  0  0 

表2

 Month Gender State Load  DepartmentID DeptName Count1 Count2 Count3 
     Jan Male  va FullTime 220   Mhrm   2  0  1 
     Jan Male  VA PartTime 220  Mhrm   1  3  13 
     Jan Female  Va FullTime 220  Mhrm   2  1  21 
     Jan Female  VA PartTime 220   Mhrm   0  0  0 

table1有更多的值....但我試圖在表1中添加部門ID 220和部門名稱Mhrm。我該如何實現這一目標?

編輯:

以上表不直接表,但夫婦的意見和很多條件相結合。我想知道如何動態組合,而無需更改表上的任何數據。

+1

** ** DepartamentID是**身份**字段?因爲如果它不是,那麼你應該做以下查詢:** INSERT INTO TABLE2(FIELD1,...,FIELDN)SELECT FIELD1,...,FIELDN FROM TABLE1 **。 –

+0

你也可以在合併功能的標誌http://technet.microsoft.com/en-us/library/bb510625.aspx – christiandev

+0

我曾嘗試過工會和工會的所有,它的作品,但這並不完全是我在看。 –

回答

1
INSERT INTO table1 
SELECT * FROM table2; 
+3

指定列名稱要好上百萬倍。該查詢不僅假定列名相同,而且列的順序也是相同的。這是一個長期的災難處方。 –

+0

請小心,因爲如果** DepartmentID **是標識字段,則此查詢將不起作用。在這種情況下,您應該啓用** indentity_insert **模式。 –

+0

感謝您的警告。如果沒有關於OP的更多信息,我更願意選擇最簡單的解決方案,假設如果答案不滿足他的需求,OP將提供更多信息。 –

3

假設DepartamentID不是一個標識字段,嘗試此查詢:

INSERT INTO TABLE2(FIELD1,...,FIELDN) 
    SELECT FIELD1,...,FIELDN FROM TABLE1. 

否則,你應該運行在此之前:

set identity_insert TABLE2 ON 
    --INSERT QUERY 
    set identity_insert TABLE2 OFF 
+0

只是好奇......你爲什麼認爲DepartmentId將是一個身份領域。如果它是一個標識列,我希望看到每行不同的值。 –

+0

@Gastros:Ups,你說得對,對不起。我想當我讀到問題的第一行時。在這種情況下,DepartamentID不是身份字段。 –

相關問題