日期:2014-05-16  浏览次数:20521 次

多个有关联的表怎么写它的存储过程呢?尤其添加和更新,请各位大神帮忙解决哈
表一:DepartmentItem
 字段名称           数据类型(大小) 是否主键 是否为空 默认值 描述
 ID                 Int            Y   N 
ArchitectureID   Varchar(40)           N            编号
 ItemID           uniqueidentifier     N           关联 Item 表
 IndexID           Smallint                        该部门排序ID
 
表二:Architecture
 字段名称           数据类型(大小) 是否主键 是否为空 默认值 描述
  ID                archar(40)
  Name              Varchar(50)

表三:Item
 字段名称           数据类型(大小) 是否主键 是否为空 默认值 描述
 ID               uniqueidentifier
 Name               varchar(20)

怎样同时向这几张表中添加数据还有同时更新它们中的数据呢? 求存储过程!!!希望大家多多指点哈
------解决方案--------------------
用事务处理就可以了
------解决方案--------------------
大概就是这样:

create proc dbo.proc_xx
as

begin tran

declare @t uniqueidentifier 

set @t = NEWID()

insert into item
select @t,'xx'

insert into Architecture
select '123456789','yy'

insert into DepartmentItem
values('987654321',@t,111)

commit tran
go

------解决方案--------------------
一二三楼都是正解!
但是个人不建议用触发器,因为影响速度!
事务是最好的方式,同时更新,任何一个环节不完成,均不影响!