F3不可能是NULL,F3是主键值,自增长型
解决方案 »
- 如何列出只包含非中文的记录?
- 上个问题我没把问题说清楚。。麻烦再看一次
- c/s系统在保存功能上如何设计更合理些?
- 程序里连接SQL Server的时候如果想用Windows NT认证模式应该如何写SQL语句?
- 疑难问题解答!(SQL语句)
- ------------------------F 姐 再帮我看看这个吧。---------------------------
- 求一触发器问题
- SQL Server的连接问题(高手请进)
- 有关类型image的问题?
- ORA-01658:unable to create INITIAL extent for segmnet in tablespace SYSTEM怎样解决?请详细说明?谢谢!
- 存储过程解析字符串 在线的,解决后100分奉上
- 关于@@ERROR的问题
begin
select @v1=f3 from inserted
insert into D(f4) values(@v1)
end
这个写法,如果inserted 多条记录,处理时不完全的,也就是说,你这样写触发器很有问题
begin
insert into D(f4) select f3 from inserted
end
if update(f2)
begin
select @v1=f3 from inserted
if @v1 is not null
insert into D(f4) values(@v1)
end
update A set f1 = 1,一切正常没有问题,D表也能插入数据
update A set f1 = 0,提示无法将NULL值插入D,好像inserted没有数据 请问各大老大,这是个啥奇怪问题列?咋个解决哟?--------------
有可能是Inserted表没数据,也可能是Inserted中有f3为Null的行,所以,可以用 :
--一次更新一条或多条数据都适用
if update(f2)
insert into D(f4) select f3 from inserted where f3 is not null
if update(f2)
begin
select @v1=isnull(f3,0) from inserted
insert into D(f4) values(@v1)
end 或者可能你取数不对:
if update(f2)
begin
select @v1=isnull(f2,0) from inserted
insert into D(f4) values(@v1)
end
if update(f2)
begin
insert into D(f4) select f3 from inserted
end
所以注意是用insert 表还是用deleted表,及连接关系,可建表接收一下看看触发情况