sybase触发器怎么能确定是哪一行发生更改。

jsidiot 2002-06-11 02:09:03
xiexie
...全文
61 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsidiot 2002-06-20
  • 打赏
  • 举报
回复
谢谢诶
okcai 2002-06-18
  • 打赏
  • 举报
回复
----因为update就是先delete,然后insert
create trigger t_a_u on a
for update
as
declare
@rows int
select @rows=@@rowcount ---把@@rowcount记录下来,防止变化
if @@rowcount<1 return ---没有修改
if update(a1) --修改了第一个字段a1,你也可以判断其他的条件
begin
---update ....
if exists(select * from deleted) and @rows>=1 --修改以前的值
insert into b select D.a1,'Update Old' from deleted D
if exists(select * from inserted) and @rows>=1 --修改以后的值
insert into b select I.a1,'Update New' from inserted I
end
return
okcai 2002-06-18
  • 打赏
  • 举报
回复
----因为update就是先delete,然后insert
create trigger t_a_u on a
for update
as
declare
@rows int
select @rows=@@rowcount ---把@@rowcount记录下来,防止变化
if @@rowcount<1 return ---没有修改
if update(a1) --修改了第一个字段a1,你也可以判断其他的条件
begin
---update ....
if exists(select * from deleted) and @rows>=1 --修改以前的值
insert into b select D.a1,'Update Old' from deleted D
if exists(select * from inserted) and @rows>=1 --修改以后的值
insert into b select I.a1,'Update New' from inserted I
end
return
forestation 2002-06-17
  • 打赏
  • 举报
回复
updated
demiurge 2002-06-17
  • 打赏
  • 举报
回复
我很多update trigger都是这么写的

if update(flag)
begin
update sub_table set flag = i.flag
from sub_table a, deleted d, inserted i
where a.key = d.key
end
老吴子 2002-06-16
  • 打赏
  • 举报
回复
Sybase ASE 的Update触发器如果涉及更改了多行的情况下,Sybase建议返回错误,在实际运用过程中发现Deleted和Inserted相应纪录顺序一样,应而可以用游标来解决。另外如果是ASA,则具有行级的触发器。
jsidiot 2002-06-12
  • 打赏
  • 举报
回复
就这个答案?
demiurge 2002-06-11
  • 打赏
  • 举报
回复
if update(字段名)
update ......
jsidiot 2002-06-11
  • 打赏
  • 举报
回复
推一下
jsidiot 2002-06-11
  • 打赏
  • 举报
回复
如何通过判定一行中的某个字段发生更改后,去修改另一个标志字段?
就是这个意思
快来救我阿
Sybase参考手册史上最完全版,共四本,这是第二本 《命令》 《Adaptive Server 参考手册》包含有关 Sybase® Adaptive Server® Enterprise 和 Transact-SQL® 语言的四本指南: • 《构件块》介绍了 Transact-SQL 的各个部件:数据类型、内置函 数、全局变量、表达式、标识符、保留字和 SQLSTATE 错误。 要想成功使用 Transact-SQL,您首先必须了解这些构件块的功 能,以及它们对 Transact-SQL 语句执行结果的影响。 • 《命令》提供了有关用于创建语句的各种 Transact-SQL 命令的 参考信息。 • 《过程》提供了有关系统过程、目录存储过程、扩展存储过程和 dbcc 存储过程的参考信息。所有过程都是使用 Transact-SQL 语 句创建的。 • 《表》提供了有关系统表的参考信息。系统表用于存储有关服务 器、数据库和用户的信息,以及服务器的其它详细信息。它还 提供有关 dbccdb 和 dbccalt 数据库中的表的信息。 约定以下各部分将说明在这些参考手册指南中使用的约定。 SQL 是一种形式自由的语言。没有规定每一行中的单词数量或者必 须换行的地方。然而,为便于阅读,本手册中所有示例和大多数语 法语句都经过了格式设置,以便语句的每个子句都在一个新行上开 始。有多个成分的子句会扩展到其它行,这些行会有缩进。复杂命 令使用已修改的 Backus Naur Form (BNF) 表示法进行了格式处理。

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧