SQL插入查询

问题描述:

我有两个表,一个叫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

你不能插入标识字段

的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

它改成这样:

SET IDENTITY_INSERT Orders ON 

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

SET IDENTITY_INSERT Orders OFF 

使用“价值观”关键字禁止使用和加入。