【问题标题】:Unable to Insert data into two related tables simultaneously in sql server无法在sql server中同时向两个相关表中插入数据
【发布时间】:2014-04-20 14:25:10
【问题描述】:

我正在使用 C#.net、winforms 和 sql server 2012 编写程序,我的一个表单用于向数据库添加新产品产品信息存储在两个表中。'prodcutName'和'id'是一个标识列存储在此表中:

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,
)

在我的表单中,我有三个 texbox,让用户可以添加产品中使用的材料名称、重量和百分比。 关于标识列,我首先应该获取产品的 id,然后根据 id 将其余数据插入到第二个表中。 这是我的表格的图表:

请帮我弄清楚如何根据标识列使用T-SQL同时将数据插入两个表中。

【问题讨论】:

    标签: sql .net tsql ado.net sql-server-2012


    【解决方案1】:

    您无法使用单个查询来执行此操作,但您可以将多个查询包装在一个事务中以模拟它。使用事务,如果第二个查询失败,您可以回滚更改,因此您要么更新两个表,要么不更新 - 您不会得到导致问题的部分更新。

    您可以直接在代码中或在存储过程中使用硬编码查询来做到这一点,这可能是更好的主意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多