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'))
你不能插入标识字段
的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子句。
其实,你可以:http://msdn.microsoft.com/en-us/library/aa259221(v= sql.80).aspx – 2012-02-09 19:12:07
实际上,您可以在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
使用“价值观”关键字禁止使用和加入。
那么,您只需要将orders_archive表中标记为“item complete”的项目放入订单表中? – noMAD 2012-02-09 19:05:59
你能告诉我们更多关于“我插入的号码不在桌面上”吗?对不起,我没有看到这里真正的问题.. – AJP 2012-02-09 19:09:50
是的,这是正确的,我错过了主表中的一些订单,我做了一个表的副本,并把它叫做orders_archive,但现在他们想再次看到一切。 – GabrielVa 2012-02-09 19:10:15