2011-04-15 50 views
0

如果我要保存OrderDetails的記錄,我需要Order表中的OrderId(外鍵)。問題是,當保存訂單記錄時,訂單ID會自動生成Order and OrderDetails

那麼在OrderDetails中插入記錄時,如何引用特定的OrderId?這讓我非常困惑。

我使用Microsoft SQL Server 2005

順序表

OrderId 
CustomerId 
Date 
Total 

訂單明細

OrderDetailId 
OrderId 
ProductId 
Quantity 
UnitPrice 

回答

2

答案將取決於哪些數據類型的訂單ID是。假設它是一個int身份,您可以調用SCOPE_IDENTITY()返回最後添加的行的標識。

例如

INSERT INTO dbo.Orders (CustomerId, Date, Total) 
VALUES (@CustomerId, @Date, @Total); 

DECLARE @OrderID int 
SET @OrderID = SCOPE_IDENTITY() 
+0

請你能給SCOPE_IDENTITY的例子()和我應該如何使用它 – user478636 2011-04-15 05:49:09

+0

增加了一個例子 – benwong 2011-04-15 05:53:24

+0

問題是,我只需要執行訂單查詢但orderdetails很多次,在這個過程中訂單ID變化,它給出了一個錯誤,因爲外鍵不匹配 – user478636 2011-04-15 12:05:43