2015-02-10 60 views
1

我在我的数据库中有2个数据表。一个数据库被命名为Employee_Data。 Employee_Data有3列,如id,name,contact。第二个数据表名称是Employee_Achievements,它有另外3列,如Achievement_Name,Marks,Grade。如何同时向两个表中插入数据(SQL管理工作室2008)

我想在一个SQL语句中将数据插入到这两个数据表中。哪种方法最好?请提供SQL查询的例子

谢谢

+1

就我所知,这在标准SQL中是不可能的,尽管有供应商特定的方式。在事务或存储过程中使用两条语句很容易。为什么你需要在一个单一的声明? – RBarryYoung 2015-02-10 16:15:49

+0

@Nilaksha Perera尝试交易。 – 2015-02-10 16:29:49

回答

5

像巴里说,创建一个交易是唯一的办法。 SQL引擎负责处理事务中数据的耦合。

BEGIN TRANSACTION 
INSERT INTO Employee_Data (Name, Contact) 
VALUES ('X', 'Y') 
DECLARE @id as int = SCOPE_IDENTITY() 
INSERT INTO Employee_Achievements (EmployeeId, Achievement_Name , Marks , Grade) 
VALUES ((@id, 'A1', 'M1', 'G1'), (@id, 'A2', 'M2', 'G2')) 
COMMIT TRANSACTION 
相关问题