求一有条件的触发器

来源:百度知道 编辑:UC知道 时间:2024/06/09 13:12:04
B表中插入数据B1时,检查插入的数据是否存在于A表中的A1列中,如果插入的数据存在于A表中的A1列中,则将A表中的某个字段A2同步到B表中的某个字段B2中,如果插入的数据不存在于A表中的A1中,则不执行任何动作。这个怎么用触发器办到??
怎么变通呢?
来点实际的么,给个代码

你不如改写成存储过程算了
触发器带参数好像只能用变通方法

好像要建立一个临时表。
=========================================
create TRIGGER [While_INSERT] ON dbo.B

FOR INSERT

AS
declare @GetB1 nvarchar(20)
declare @GetA2 nvarchar(20)

set @GetB1= rtrim((select B1 from inserted)) ----得到刚插入的数据B1

---

IF not exists (select A1 from dbo.A where A1=@GetB1) ---刚插入的数据B1是否存在于A表中的A1列内
begin
print '不存在'
ROLLBACK TRANSACTION --回滚事务
end
ELSE
BEGIN
print '存在数据'
print @GetB1
---获取对应的A2
set @GetA2=(select A2 from dbo.A where A1=@GetB1)
print @GetA2
update dbo.B set b1=@GetB1,B2=@GetA2 where B1 = @GetB1
END

====================================================
代码你自己试验吧,我试过了,可行