主表插入数据,从表如何根据主表的自增长ID同时插入数据?

thinma 2009-11-06 05:18:56
表结构如下:



问题:如何在主表插入一条记录以后同步更新两张从表的data字段?(data字段为varbinary(max)类型)

注:1)主表的id字段为自增长类型
2)三张表的所有字段均不允许为空,所以必须同时更新吧(insert和update里面我都定义为层叠了)
3)两张从表的data字段要插入数据为一个大型二进制文件,我不知道在参数传递上是否涉及到什么问题

请各位前辈多多指教~~
...全文
534 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
thinma 2009-11-07
  • 打赏
  • 举报
回复
目前还没有人能提供一个完整的解决方案,还有人帮忙么?
appleller 2009-11-06
  • 打赏
  • 举报
回复
XUEXI
cnkiminzhuhu 2009-11-06
  • 打赏
  • 举报
回复
思路:通过触发器 返回新增的ID 然后再根据此ID 返回想要的数据
Rotel-刘志东 2009-11-06
  • 打赏
  • 举报
回复
应该使用触发器就能解决,级联操作吗?
create trigger trig_tab_index on tab_index
for insert
as
begin
insert tb_data6601 select id from tb_index
insert tb_data4474 select id from tb_index
end
go
chinaly 2009-11-06
  • 打赏
  • 举报
回复
插入附表的时间取主表max(ID)就好了,最大值ID一定是刚才添加的.
thinma 2009-11-06
  • 打赏
  • 举报
回复
data字段不存在于其他任何表中,是从硬盘中读取的二进制文件放到Stream中的

[Quote=引用 9 楼 dawugui 的回复:]
引用 6 楼 thinma 的回复:
回复的各位:触发器不可以传参数吧?请问我的从表的data字段的值如何插入进去呢?

例如:

固定值

create trigger my_trig on tb_index for insert
as
begin
  insert into tb_data6601(id,data) select id , '某值' from inserted
  insert into tb_data4474(id,data) select id , '某值' from inserted
end
go

需要从其他表传入?

create trigger my_trig on tb_index for insert
as
begin
  insert into tb_data6601(id,data) select m.id , n.val from inserted m , 其他表 n where 条件
  insert into tb_data4474(id,data) select m.id , n.val from inserted m , 其他表 n where 条件
end
go

[/Quote]
dawugui 2009-11-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 thinma 的回复:]
回复的各位:触发器不可以传参数吧?请问我的从表的data字段的值如何插入进去呢?
[/Quote]
例如:

固定值

create trigger my_trig on tb_index for insert
as
begin
insert into tb_data6601(id,data) select id , '某值' from inserted
insert into tb_data4474(id,data) select id , '某值' from inserted
end
go

需要从其他表传入?

create trigger my_trig on tb_index for insert
as
begin
insert into tb_data6601(id,data) select m.id , n.val from inserted m , 其他表 n where 条件
insert into tb_data4474(id,data) select m.id , n.val from inserted m , 其他表 n where 条件
end
go
pbsh 2009-11-06
  • 打赏
  • 举报
回复
ID可以通过触发器同步,Data数据哪里来呀。
thinma 2009-11-06
  • 打赏
  • 举报
回复
5楼回复的那个帖子我看了,我们的不同之处在于:他从表里面需要的数据全部可以从主表里面得到,而我的则需要另外传入,而且是大数据类型
thinma 2009-11-06
  • 打赏
  • 举报
回复
回复的各位:触发器不可以传参数吧?请问我的从表的data字段的值如何插入进去呢?
xiequan2 2009-11-06
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20041028/09/3498141.html
--小F-- 2009-11-06
  • 打赏
  • 举报
回复
在tb_index表上写触发器
dawugui 2009-11-06
  • 打赏
  • 举报
回复
这是操作id的,你的data字段不清楚如何处理.

create trigger my_trig on tb_index for insert 
as
begin
insert into tb_data6601(id) select id from inserted
insert into tb_data4474(id) select id from inserted
end
go
子陌红尘 2009-11-06
  • 打赏
  • 举报
回复
取值可以用:@@IDENTITY/SCOPE_IDENTITY( )
dawugui 2009-11-06
  • 打赏
  • 举报
回复
这个用触发器不就行了?

34,588

社区成员

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

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