各位大蝦,有表a,表b,表c
a表結構如下:
area varchar(100)
town varchar(100)b表結構如下
area varchar(100)
town varchar(100)
area_id varchar(4)
areaid int (自增變量)
c表結構如下
area_id varchar(4)
黨a表插入值后,觸發器獲得信息,搜尋b表,判斷是否有和這個area\town相同的記錄,有就不插入,直接取得這個area_id,沒有的話,就取這個a標的area\town插入b 表,觸發器生成area_id,最後將這個area_id插入c表。
現在踫到個問題,例如中國上海,在b表有area_id為1的紀錄,則c表就會插入null值,如果中國上海的在b表裏沒有,則c表能正確插入值.請教下這是爲什麽?代碼:
ALTER trigger a_test
on a
after insert
as
declare
@area varchar(100),@town varchar(100),@area_id varchar(4)--地区维表
select @area=area,@town=town from inserted
if @area!=''and @town!=''
begin
if exists(select * from b where town=@town and area=@area)
begin
select area_id from b where town=@town and area=@area
end
else
begin
insert into b(town,area) values(@town,@area)
update b set area_id=cast(areaid as varchar) where town=@town and area=@area
select @area_id=area_id from b where town=@town and area=@area
end
endinsert into c(Area_ID) values(@area_id)
謝謝!
解决方案 »
- 一个简单的SQL语句,在线等,马上结贴
- 日期格式的最高效转换
- 在安装jeecms的时候报这个 Unknown table engine 'INNODB'是怎么回事呢?O(∩_∩)O谢谢
- 帮忙看看这句怎么优化一下,现在执行速度奇慢
- 请教一SQL计算问题!
- 关于SQL Server注册注册属性的问题解决问题者高分(在线等待)(急啊!!!!)
- 在SQL SERVER和ACCESS上,如何返回其拥有的表名列表?
- 我有一个数据库文件,它的扩展名是:*.db的。现在我要把它里面的数据导出来,请问怎样做。
- 我想更改数据库中的数据但是弹出对话框“不能在firehose下启动事务" 这是什么原因?
- FOXPRO关于票据打印的简单问题
- 我的数据库myer.mdf谁都可以在企业管理器中打开看,我不知道如何加密它。好像在企业管理器中打开以后,找不到建立用户名和密码的地方,请赐教。我希望只有我能用一个用户名和密码打开,如何做。谢谢!
- (高分求:)数据库视图设计问题
ALTER trigger a_test
on a
after insert
as
declare @area varchar(100),@town varchar(100),@area_id varchar(4)--地区维表
select @area=area,@town=town from inserted
if @area!=''and @town!=''
begin
if exists(select 1 from b where town=@town and area=@area)
begin
select @area_id = area_id from b where town=@town and area=@area
end
else
begin
insert into b(town,area) values(@town,@area)
update b set area_id=cast(areaid as varchar) where town=@town and area=@area
select @area_id=area_id from b where town=@town and area=@area
end
end insert into c(Area_ID) values(@area_id)
area varchar(100)
town varchar(100) b表結構如下
area varchar(100)
town varchar(100)
area_id varchar(4)
areaid int (自增變量)
c表結構如下
area_id varchar(4)