通过存储过程实现数据库的组织关系,抛弃事件

不知道是我企业管理器不太熟悉还什么的,总是有一种错觉,就是利用SQL2000的存储过程和函数解决一些数据关联性的问题就可以了。

何必要使用事件。

同时发现事件还有很多办不到的问题,个人认为这是个懒人的一个偷懒的方法而已。

还有事件还有很多没法实现的功能

譬如:

t_user                                                  t_company

tid int pk                                               tid int pk

textbox1 nvarchar(50)                        userid int

textbox2 nvarchar(50)                        textbox1 nvarchar(50)

textbox3 nvarchar(50)                        textbox1 nvarchar(50)

state int                                                state int

 事件我们可以事件的功能是(我所知道的)

当t_user的某条记录被删除时,我们可以通过事件删除相关关联的数据。

但是考虑到现实中,一个大型网站很少有将数据删除的时候,大多是丢到垃圾箱中,这样就只有存储过程可以办到了 。

---------------------

Create PROC sp_updateState

@tid int

@statevalue nvarchar(50)

@tablename

as

declare @SQLEXEC nvarchar(50)

set @SQLEXEC = 'update ’+@tablename+‘ set stat='+@statevalue+' where  tid=‘+@tid

exec @SQLEXEC

go

 

Create PROC sp_updateUserState

@tid int

@statevalue nvarchar(50)

as

    exec sp_updateState @tid,@statevalue,'t_user'

     declare @companyid int

     set @companyid = (select tid from t_company where userid = @tid)

     exec sp_updateState @tid @statevalue,'t_company'

go

---------------------

在很多数据之间的的关系其实很复杂的,要比较好的解决这些关联信息的问题,用存储过程就可以很好解决了。

 

 

posted @ 2008-10-12 13:05  挟风凌月  阅读(149)  评论(0编辑  收藏  举报