2012-02-09 2 views
0

두 테이블이 있습니다. 하나는 orders이고 다른 하나는 orders_archive입니다. "아이템 완료"라고 표기된 아이템이있어서 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

당신은 신원 필드 신원 필드에 삽입 할 수 있도록 신원 삽입을 설정할 수 있습니다 SQL 서버

에 삽입 캔트 : 다음

ON SET IDENTITY_INSERT Orders_ARCHIVE을 다시 전원을 켜십시오 on again 다시 SET IDENTITY_INSERT 주문 _ARCHIVE ON

중복 ID를 만들 수 있기 때문에 위대한 계획은 아닙니다. 아카이브 ID가 필요 없다면, Insert 문에서 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') 

삽입 문장이 잘못되어 선택 항목을 사용할 때 값 절을 사용하지 않았습니다. 이것에

+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 

은 "값"키워드를 사용하여이 FROM의 사용을 금지하고 가입하세요.