2012-02-09 220 views
0

我有兩個表,一個叫orders,另一個,orders_archive。我有一些項目標記爲「項目完成」,我想進入orders表格,但我遇到了問題。有人能指引我朝着正確的方向嗎?我的OrderNumber字段是身份種子,我插入的號碼不在表格中。我不知道這是否有所作爲。SQL插入查詢

Insert INTO Orders VALUES (OrderNumber, [Church Name], CustomerID, [Date], ShippingAddress, ShippingCity, ShippingState, ShippingZip, ToBeShippedBY, Freight, Terms, SpecialInstructions, 
    SalesRep, OrderRecievedBY, PaymentType, PaymentAccount, PaymentEXPDate, PaymentCCV, PaymentNameonCard, PaymentBillingAdd, PaymentBillingCity, 
    PaymentBillingState, PaymentBillingZip, PaymentsameasChurchAdd, Item1NO, Item1Desc, Item1QTY, Item1Price, Item2NO, Item2Desc, Item2QTY, Item2Price, 
    Item3NO, Item3Desc, Item3QTY, Item3Price, Item4NO, Item4Desc, Item4QTY, Item4Price, Item5NO, Item5Desc, Item5QTY, Item5Price, Item6NO, Item6Desc, 
    Item6QTY, Item6PRice, Item7NO, Item7Desc, Item7QTY, Item7Price, Item8NO, Item8Desc, Item8QTY, Item8Price, [Office Approved], EmailContact, 
    ENTERontoSERVERFILE, PreparePO, SendPOtoManufacture, CopyTaxExempt, ScanDOCS, BusinessUnit, SalesTax, Notes, OrderStatus, AuthNUM, TaxExempt, 
    ItemDamaged, MiscNotes, StainColor, Framecolor, Silvervein, [Tracking Number], Deposit, SENT_Receipt, Prepared_PO, Sent_PO, Created_File_ON_Server, 
    Copy_Tax_forms_to_acctng, ChangefromPAYNENTPENDING, ScanMISCDocs, Process_Payment, ConfirmONServer, CheckINVENTORY, EnterIntoBooks, 
    PlacedIntoFilingCabinet, GSTOCK, DONTSHIPBEFOREDATE, Vendor, Item1weight, Item2weight, Item3weight, Item4weight, Item5weight, Item6weight, Item7weight, 
    Item8weight, TruckNumber, ShipDate, DeliverDate, Customer, ActualQuote, PersonQuotedActual, ShipName, HeaterSerialNum 
FROM dbo.Orders_ARCHIVE 
WHERE (OrderStatus LIKE 'Order Complete')) 
+0

那麼,您只需要將orders_archive表中標記爲「item complete」的項目放入訂單表中? – noMAD 2012-02-09 19:05:59

+0

你能告訴我們更多關於「我插入的號碼不在桌面上」嗎?對不起,我沒有看到這裏真正的問題.. – AJP 2012-02-09 19:09:50

+0

是的,這是正確的,我錯過了主表中的一些訂單,我做了一個表的副本,並把它叫做orders_archive,但現在他們想再次看到一切。 – GabrielVa 2012-02-09 19:10:15

回答

0

你不能插入標識字段

的SQL Server,你可以打開標識插入,這將允許你插入標識字段上: SET IDENTITY_INSERT Orders_ARCHIVE ON

然後將其重新再次 SET IDENTITY_INSERT Orders_ARCHIVE ON

這不是一個偉大的計劃,但你可以創建重複的ID。如果您不需要存檔ID,那麼只需將OrderNumber字段從您的插入語句中刪除即可。

Insert INTO Orders 
SELECT OrderNumber, [Church Name], CustomerID, [Date], ShippingAddress, ShippingCity, ShippingState, ShippingZip, ToBeShippedBY, Freight, Terms, SpecialInstructions, 
    SalesRep, OrderRecievedBY, PaymentType, PaymentAccount, PaymentEXPDate, PaymentCCV, PaymentNameonCard, PaymentBillingAdd, PaymentBillingCity, 
    PaymentBillingState, PaymentBillingZip, PaymentsameasChurchAdd, Item1NO, Item1Desc, Item1QTY, Item1Price, Item2NO, Item2Desc, Item2QTY, Item2Price, 
    Item3NO, Item3Desc, Item3QTY, Item3Price, Item4NO, Item4Desc, Item4QTY, Item4Price, Item5NO, Item5Desc, Item5QTY, Item5Price, Item6NO, Item6Desc, 
    Item6QTY, Item6PRice, Item7NO, Item7Desc, Item7QTY, Item7Price, Item8NO, Item8Desc, Item8QTY, Item8Price, [Office Approved], EmailContact, 
    ENTERontoSERVERFILE, PreparePO, SendPOtoManufacture, CopyTaxExempt, ScanDOCS, BusinessUnit, SalesTax, Notes, OrderStatus, AuthNUM, TaxExempt, 
    ItemDamaged, MiscNotes, StainColor, Framecolor, Silvervein, [Tracking Number], Deposit, SENT_Receipt, Prepared_PO, Sent_PO, Created_File_ON_Server, 
    Copy_Tax_forms_to_acctng, ChangefromPAYNENTPENDING, ScanMISCDocs, Process_Payment, ConfirmONServer, CheckINVENTORY, EnterIntoBooks, 
    PlacedIntoFilingCabinet, GSTOCK, DONTSHIPBEFOREDATE, Vendor, Item1weight, Item2weight, Item3weight, Item4weight, Item5weight, Item6weight, Item7weight, 
    Item8weight, TruckNumber, ShipDate, DeliverDate, Customer, ActualQuote, PersonQuotedActual, ShipName, HeaterSerialNum 
FROM dbo.Orders_ARCHIVE 
WHERE (OrderStatus LIKE 'Order Complete') 

您的insert語句不正確,您不要在使用選項時使用values子句。

+0

其實,你可以:http://msdn.microsoft.com/en-us/library/aa259221(v= sql.80).aspx – 2012-02-09 19:12:07

+0

實際上,您可以在sql server中使用SET IDENTITY_INSERT INSERT,而在mySQL中,您可以通過提供值來「壓倒」自動增加列。 – EBarr 2012-02-09 19:13:35

2

它改成這樣:

SET IDENTITY_INSERT Orders ON 

INSERT INTO Orders 
SELECT <columns> 
FROM Orders_ARCHIVE 
WHERE OrderStatus LIKE '%Order Complete%' 

SET IDENTITY_INSERT Orders OFF 

使用「價值觀」關鍵字禁止使用和加入。