这个关系怎写?(50分)

  • 主题发起人 主题发起人 kenmen
  • 开始时间 开始时间
K

kenmen

Unregistered / Unconfirmed
GUEST, unregistred user!
我有两个表,想当一个表增加一个纪录时,另一个也相应的增加一个。请问用sql语句
怎写?另外的表怎么写才能知道刚才的表是增加了哪条纪录?是否用变量?
谢谢了!
 
请写清楚点好不好,老兄!
 
用触发器,你的要求可以实现,而且保证数据的一致性
触发器的写法,你可以检索一下以前的记录,已经讨论多次了
 
无聊的问题!
 
对用触发器,最好的办法,变量都不要
 
to:terry_lzs
能说说详细怎实现吗?或举出以前的是哪个例子吗?
我也想到是用触发器,但具体怎么写还未想好。当一个表增加纪录时,另一个表怎么知道
刚才的表增加了哪个纪录。这一点我就是想不明。
请指点!
 
可以增加一个标记字段,(id) 设一个全局变量=标记.
 
举个例子
CREATE TRIGGER condel ON [Operselect] // 所建的触发器叫condel,属于表operselect
FOR insert //由事件insert触发
AS
insert into convalue Select * From new//将表new中的记录插到convalue表中,表new
是个临时表是系统自己定义的,你对operselect表进行新添记录时那些记录在new表中都有
记录。
 
to :terry_lzs
若是update也是一样吗?
 
用SQL触发器!
 
对不起,最后应该是from inserted而不是from new
当数据库进行insert或是update操作时被修改的记录或是添加的记录都是存在inserted表中
 
to:terry_lzs
能说说还有啥临时表有用吗?
例如new有啥用?
为啥这里不能用它?
谢了!
 
怪不得没人愿回答你。
inserted临时表只能用在触发器中,该表记录着所有新增的纪录,只读的。
在有些数据库中,该表不叫inserted而叫做new,如interbase。
用update时,inserted表中就是所有的新记录映射。
 
用TRIGGER吧,相关联的表肯定有相对应的关联字段的,在SQL SERVER中受影响的记录保存在
INSERTED,UPDATED,DELETED中
 
大家都说了,用触发器。
象你的说法当A表增加记录时,B表要做相应操作。
只需要写A表的INSERT触发器,就可以了。
SQL SERVER中提供了三个临时表INSERTED,UPDATED,DELETED,他们分别记录表增加、修改、删除的信息。
具体写法,你可以看看关于SQL SERVER的书,一般都有例子。非常简单。
对了,就像FENIX说的,SQL SERVER中是这样叫的。别的数据库就不一定了,像在ORACLE中吧,就是NEW。
你可以看看相关的书,比较简单的触发器一般一看就能搞定。
 
多人接受答案了。
 
后退
顶部