sql中怎样一次insert两个表

Crazy_1015 2012-11-08 09:17:28
有两个表,表A主键id自增,表B外键id,向表A添加一条信息,我想让表B(ID)也自动添加表A自增的(ID),怎么可以做到,求代码,详细点,谢谢!
...全文
665 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
-晴天 2012-11-09
  • 打赏
  • 举报
回复
用触发器.
create table t1(id int identity(1,1),val varchar(10))
create table t2(t1id int)
go
create trigger setsumidtot2
on t1
for insert
as
insert into t2 select id from inserted
go
insert into t1(val) values('abc')
select * from t2
/*
t1id
-----------
1

(1 行受影响)
*/
go
drop table t1,t2
风暴偷鸡队 2012-11-09
  • 打赏
  • 举报
回复
你这什么意思啊- -一次是说一条sql搞定还是想说一个批处理搞定啊
风暴偷鸡队 2012-11-09
  • 打赏
  • 举报
回复
引用 13 楼 DBA_Huangzj 的回复:
引用 9 楼 pplive1989 的回复:你这什么意思啊- -一次是说一条sql搞定还是想说一个批处理搞定啊一个存储过程就是执行一个批啊。你这功底也太》。。。。
= =不好意思您可能弄错了,我是说不了解LZ说的:sql中怎样一次insert两个表
Crazy_1015 2012-11-09
  • 打赏
  • 举报
回复
谢谢大家 向你们学习!
gengjuncai 2012-11-09
  • 打赏
  • 举报
回复
用触发器吧,10楼的做法应该可行 create table t1(id int identity(1,1),val varchar(10)) create table t2(t1id int) go create trigger setsumidtot2 on t1 for insert as insert into t2 select id from inserted go insert into t1(val) values('abc') select * from t2
發糞塗牆 2012-11-09
  • 打赏
  • 举报
回复
引用 9 楼 pplive1989 的回复:
你这什么意思啊- -一次是说一条sql搞定还是想说一个批处理搞定啊
一个存储过程就是执行一个批啊。你这功底也太》。。。。
xiaoxiangqing 2012-11-09
  • 打赏
  • 举报
回复
用触发器就可以了
nevermorewish 2012-11-09
  • 打赏
  • 举报
回复
引用 8 楼 DBA_Huangzj 的回复:
create proc xxx ( @a 类型, @b 类型 这里按这个格式,把你要写入的值和类型都一一天上 ) as 这里把你弄好的insert语句写进去 然后就完事了。触发器不怎么喜欢用,所以语法不熟
++
稻庄 2012-11-09
  • 打赏
  • 举报
回复
引用
發糞塗牆 2012-11-08
  • 打赏
  • 举报
回复
create proc xxx ( @a 类型, @b 类型 这里按这个格式,把你要写入的值和类型都一一天上 ) as 这里把你弄好的insert语句写进去 然后就完事了。触发器不怎么喜欢用,所以语法不熟
Crazy_1015 2012-11-08
  • 打赏
  • 举报
回复
哦哦 知道了 在请问一下把他写成存储过程或触发器怎么写
發糞塗牆 2012-11-08
  • 打赏
  • 举报
回复
insert into a(a,b,c) values(a,b,c)要用这样的格式,插入的列要一一对应,自增列不要插入
Crazy_1015 2012-11-08
  • 打赏
  • 举报
回复
我改了一点,但是我在第二个表(user_info)插入多个信息的时候会报错(消息 110,级别 15,状态 1,第 2 行 INSERT 语句中列的数目小于 VALUES 子句中指定的值的数目。VALUES 子句中值的数目必须与 INSERT 语句中指定的列的数目匹配。 ) 我想问哈这是什么原因
Crazy_1015 2012-11-08
  • 打赏
  • 举报
回复
还是不行啊 我说错了一个信息,就是user_base_id是自增的, 还有就是insert into user_base_id values('123'),应该是insert into user_base(指定表)第二个也一样
开启时代 2012-11-08
  • 打赏
  • 举报
回复
insert into user_base_id values(1,'123') insert into use_info_id(user_info_id) values(@@identity)
Crazy_1015 2012-11-08
  • 打赏
  • 举报
回复
表user_base 字段user_base_id(主键、自增)、user_base_pwd, 表user_info 字段user_info_id(外键、对应user_base_id)假设这么多, 我要象user_base插入一条数据如:(1,123),我想要user_info也自动插入user_info_id等于1, 怎么做?
發糞塗牆 2012-11-08
  • 打赏
  • 举报
回复
先插入B表,获取数据,再插入A表。你的表结构都不给出来怎么给语句

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧