2014-04-20 85 views
0

我在寫一個使用C#.net,winforms和sql server 2012的程序,我的一個表單用於添加一個新產品到數據庫產品信息存儲到2個tables.'prodcutName」和‘身份證’,這是一個標識列存儲在該表:此表中存儲無法在sql服務器中同時插入數據到兩個相關表

create table productType (
id int, 
productName nvarchar(100), 
constraint PK_productTpye_id_productName primary key (id), 
constraint UQ_productType_productName unique (productName)) 

其他產品信息:

create table ingredients(
id int, 
material nvarchar(100), 
_weight float, 
_percent float, 
constraint PK_id_material_ingredients primary key (id,material), 
constraint FK_id_ingredients foreign key (id) references productType (id) 
on update cascade on  delete cascade, 
constraint FK_material_ingredients foreign key (material) references material (materialName) 
on update cascade on delete cascade, 
) 
在我的形式

我有三個texboxes可讓用戶添加,其在產品中使用的材料名稱,重量和precent。 對於標識列第一,我應該得到的產品的ID,然後根據ID插入數據的其餘部分向第二個表。 這是我的表的圖:

enter image description here

請幫我找出如何同時使用根據標識列的T-SQL將數據插入到兩個表。

回答

1

你不能用單個查詢來做到這一點,但你可以在一個事務中包裝多個查詢來模擬它。使用事務,如果第二個查詢失敗,則可以回滾更改,以便您可以更新這兩個表或不更新 - 您不會得到導致問題的部分更新。

您可以直接在代碼中使用硬編碼查詢,也可以在存儲過程中使用硬編碼查詢,這可能是更好的主意。

相關問題