C# 使用事务将记录插入到c中相互依赖的多个表中
我是C的新手 我有两张桌子: 员工表E_id主键、姓名、姓氏、地址、DOB、电子邮件 BankDetail表格Id主键、银行名称、账号、E\U Id FK 两个PK都是自动递增的 现在的问题是,我需要同时在两个表中插入数据。但是,如果员工Id E-Id在递增过程中生成,那么我将如何在同一操作中将该值输入到BankDetails E_Id中。我还需要在这里使用事务来保证数据库的完整性C# 使用事务将记录插入到c中相互依赖的多个表中,c#,C#,我是C的新手 我有两张桌子: 员工表E_id主键、姓名、姓氏、地址、DOB、电子邮件 BankDetail表格Id主键、银行名称、账号、E\U Id FK 两个PK都是自动递增的 现在的问题是,我需要同时在两个表中插入数据。但是,如果员工Id E-Id在递增过程中生成,那么我将如何在同一操作中将该值输入到BankDetails E_Id中。我还需要在这里使用事务来保证数据库的完整性 有人能简单地解释一下吗?提前感谢。我认为实现这一点的最佳方法是将您的操作包装在存储过程中。您可以使用获取先前添加的
有人能简单地解释一下吗?提前感谢。我认为实现这一点的最佳方法是将您的操作包装在存储过程中。您可以使用获取先前添加的记录的ID,并确保执行两个insert查询或根本不执行任何查询
BEGIN TRANSACTION;
BEGIN TRY
INSERT INTO Employee (first_name, Last_name, Address, DOB, Email)
VALUES (@fname, @lame, ... etc)
-- Get the last identity value inserted into an identity column in the same scope
SET @E_Id = SCOPE_IDENTITY();
INSERT INTO BankDetail(bank_name, Acc_no, E_id)
VALUES (@bname, @ano, @E_id)
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
END CATCH;
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
看看交易情况亲爱的Giorgos非常感谢伙计。让我来实现这一点,然后如果您愿意回答更多的问题,我可能会回复您。@Cloud好的,没问题。请注意,上述代码适用于Sql Server。最好将这样的操作放在db服务器中,而不是试图用C来完成它们