SQL Server2000中有表aa,表aa更新增加删除时,怎样才能知道它发生变化?

wazhqi 2003-01-30 04:52:58
SQL Server2000中有表aa,表aa更新增加删除时,怎样才能知道它发生变化?
我只能读出表aa的总金额,不能修改,若超过一定的金额则报警。
...全文
64 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
lh1979 2003-02-28
  • 打赏
  • 举报
回复
create trigger trgcheck on aa
for update,insert,delete
as
declare @iCount int
declare @msg varchar(8000)
set @msg='金额超过某值!'
if update(金额)
begin
if @@rowcount=0 ---数据没有变动
return
else begin
select @iCount=sum(金额) from aa
if @iCount>某金额
raiserror @msg,16,-1
end
end
这个我没有测试,大概是这样,如你想更详细的,自己看书
wazhqi 2003-02-28
  • 打赏
  • 举报
回复
>>可以隔一段时间取金额的值,可以知道表有没有发生改变了.
比较占资源。
満足条件用什么方法比较好?
触发器怎样判断呢?
swrgdx 2003-02-24
  • 打赏
  • 举报
回复
up
tfxg 2003-02-23
  • 打赏
  • 举报
回复
用触发器 如 pengdali(大力) 所说的。
lh1979 2003-02-23
  • 打赏
  • 举报
回复
mssql有一工具:SQL事件探察器,应对你帮助很大,对表的任意动作他都能跟踪到,还有,你编一个触发器也行的,根据你说的情况,金额应是可变的,你可以隔一段时间取金额的值,可以知道表有没有发生改变了
pengdali 2003-02-23
  • 打赏
  • 举报
回复
哈哈!这是sql的问题!

1、用时间戳字段,你一改任何一列他本记录的时间戳就会改变的!
例:
declare @ table (a int,b timestamp)
insert @ values(1,null)
select * from @
update @ set a=2
select * from @

2、用触发器

CREATE TRIGGER 插入触发器 ON 表
FOR INSERT
AS
insert 日志表 (时间,动作,值) select getDAte(),'插入',* from inserted
go


CREATE TRIGGER 删除触发器 ON 表
FOR delete
AS
insert 日志表 (时间,动作,值) select getDAte(),'删除',* from deleted
go

CREATE TRIGGER 修改触发器 ON 表
FOR update
AS
insert 日志表 (时间,动作,值) select getDAte(),'修改前',* from deleted
insert 日志表 (时间,动作,值) select getDAte(),'修改后',* from inserted
go
wazhqi 2003-02-23
  • 打赏
  • 举报
回复
请rzhou(海盗)给一些代码!
forgot 2003-02-20
  • 打赏
  • 举报
回复
我的想法是这样的:
新建一个表SumTable:SumValue(float)
原表建一个触发器
CREATE TRIGGER Tr_SumValue ON dbo.aa
FOR INSERT, UPDATE, DELETE
AS
Delete from SumTable
Select Sum(Value) into SumTable from aa

在你的前台程序中只要判断Select SumValue from SumTable的值即可。
wazhqi 2003-02-20
  • 打赏
  • 举报
回复
谢谢rzhou(海盗)
Sir_Java 2003-02-11
  • 打赏
  • 举报
回复
编一个触发器用来监视任何对表的操作!
tfxg 2003-02-10
  • 打赏
  • 举报
回复
存储过程触发器都试一下
ltmb118 2003-02-10
  • 打赏
  • 举报
回复
再不行 你用存储过程 查余额
rzhou 2003-02-04
  • 打赏
  • 举报
回复
啊,我在DELPHIBBS已经回了的呀?还有问题,那你发邮件给我,我给你改吧,我不要分的哦
gzllich 2003-01-31
  • 打赏
  • 举报
回复
用触发器或在保存时判断均可
dancedog 2003-01-30
  • 打赏
  • 举报
回复
触发器,

还是去看看帮助吧,不然对自己真的没什么提高
hfkobe 2003-01-30
  • 打赏
  • 举报
回复
使用触发器是一个好的选择,但是对编程人员有一定的要求
如果你还是初学者,你可以在每次更新数据以后,在查询一下数据总额,并设定数据上限。
不过,我还是推荐你用触发器来做,不会的话,找几本书,学一下,也不难的。


大家新春快乐!
Billy_Chen28 2003-01-30
  • 打赏
  • 举报
回复
触发器就是能监视你对记录的所有操作比如更新、删除记录等
怎么做触发器,你可以先看看SQLSERVER里自带的帮助
里面很详细
xusun 2003-01-30
  • 打赏
  • 举报
回复
就编个出发器吧
fyje 2003-01-30
  • 打赏
  • 举报
回复
对,使用触发器也是个好办法,不过,需要对SQL熟悉才行
wazhqi 2003-01-30
  • 打赏
  • 举报
回复
to cg1120(代码最优化-§新年祝福你,好运伴着你§)
请你说详细些呀
加载更多回复(2)

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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