sql如何同时向两张表插入数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql如何同时向两张表插入数据相关的知识,希望对你有一定的参考价值。

举个例子:create table a( id int identity primary key,name varchar(100))gocreate table b( smallname varchar(100),aid int references a(id) )C#代码中同事插入name和smallname,如何一次性插入进去,高手详解一下谢谢

参考技术A SqlCommand cmd = new SqlCommand();cmd.CommandText="insert into a values('"+要插入的name+"');insert into b values('"+要插入的smallname+"')";cmd.ExecuteNonQuery(); 参考技术B 如果要达到同时插入的效果,建议使用触发器if exists(select * from sysobjects where name = ' 触发器名称')drop trigger '触发器名称'gocreate trigger'触发器名称'on 表名for insertasinsert into 表名 values(插入值); 就这个例子,用触发器可以达到对一个表作插入数据同时另外的表也自动插入数据

两张表关联如何实现同时插入数据 sql具体语句

user表一:
id
name
password
表2:
id
age
sex
Userid(外键)
一对一关系,同时插入数据
三楼的不错,但我要实现的是id自增的的插入哦!

这样的语句可以放在存储过程里
declare @id int
insert into table1 (name,password) values (...)
set @id=@@identity --取到刚插入的id
insert into table2 (age,sex,userid) values (...@id)

其实这样就可以了。如果你担心两个表的数据不同步,比如可能插入了table1后,但是出错了,表1有数据但表2没有,你可以把这2条语句放一个事务里。
参考技术A insert into AA (id1,name,password,id2,age,sex)
select (a.id,a.name,a.password ,b.id,b.age,b.sex from user表1 a ,user表2 b where a.id =b.Userid)
参考技术B 先在表一中插入数据,再在表2中插入数据:
表2的userid的值必须时在表1中存在的ID值
参考技术C 你用一下连接 ,先把两张表连接接起来,再执行插入

以上是关于sql如何同时向两张表插入数据的主要内容,如果未能解决你的问题,请参考以下文章

sql如何同时向两张表插入数据

两张表关联如何实现同时插入数据 sql具体语句

想写个SQL触发器,同时插入两张,当一个表不符合条件时两张表都不让插入

sql插入数据问题

mybatis主键返回的实现

插入数据库表中一条记录同时也插入另一个表中的SQL语句怎么写