2012-02-09 32 views
0

私はordersと呼ばれるものと、orders_archiveという2つのテーブルを持っています。私はordersテーブルに入りたいと思っている「アイテム完成」と書かれたアイテムをいくつか持っていますが、問題があります。誰かが私を正しい方向に向けることができますか?私のOrderNumberフィールドはIDシードですが、挿入する数字はテーブルにありません。それが違いを生むかどうかはわかりません。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」とマークされたアイテムだけをordersテーブルに入れたいとしますか? – noMAD

+0

あなたは「私が挿入している番号はテーブルにない」についてもっと教えてください。申し訳ありませんが、実際の問題はここに見えていません。 – AJP

+0

はい、それはメインテーブルからいくつかの注文が欠落している、私はテーブルのコピーを作成し、orders_archiveと呼ばれましたが、今彼らは再びすべてを見たいです。 – GabrielVa

答えて

0

あなたは、あなたがIDフィールドに挿入することができますアイデンティティのインサートをオンにすることができ、SQLサーバー上のIDフィールド

に挿入カント:

ON SET IDENTITY_INSERT Orders_ARCHIVEは、再度電源を入れon again SET IDENTITY_INSERT受注日:ON

重複IDを作成できるので、これは素晴らしい計画ではありません。アーカイブIDが必要ない場合は、単にInsertNodeフィールドをInsert文から引き出します。

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') 

あなたの挿入文が正しくありませんでした。選択を行うときに値節を使用しないでください。これに

+0

実際には、次のことができます:http://msdn.microsoft.com/en-us/library/aa259221(v= sql.80).aspx –

+0

実際にはSQL ServerでSET IDENTITY_INSERT INSERTを使用することができます。mySQLのようなものでは、値を指定して自動インクリメント列を「圧倒」できます。 – EBarr

2

変更を:

SET IDENTITY_INSERT Orders ON 

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

SET IDENTITY_INSERT Orders OFF 

"VALUES" キーワードを使用するには、FROMの使用を禁止し、登録しよう。