SQL Server2000中有表aa,表aa更新增加删除时,怎样才能知道它发生变化?
我只能读出表aa的总金额,不能修改,若超过一定的金额则报警。
我只能读出表aa的总金额,不能修改,若超过一定的金额则报警。
解决方案 »
- MEMOT中的内容在不断的增加,每次增加都是在上次增加内容基础上换行增加,怎样才能把每次增加的的内容传出来
- 朋友们大家好有个小问题请教一下关于FastReport报表!!!
- 老兄帮忙小弟啊!!!我的delphi能编辑程序但不能编译、运行。。。。。。好烦啊!!!!!
- 变猩猩了,散分。
- 如何将array of byte类型的数组转换成字符串?(在线)
- 关于更改系统壁纸一问!
- 高手手请进!文本文件数据库表的问题??????
- 如何屏蔽出现ESockError异常
- 我提取数据库中的数据进行修改后,怎样才可以保持原来的数据不变,而改动后的数据也存储在数据库中呢?同一个表里
- delphi中的可执行文件如何带参数启动?
- 庆祝卡斯特罗来到江苏软件园!!!!!!!!!!!
- 文本文件只有一行,变一下顺序,怎么写??
具体实现你可以先看盾SQL SERVER帮助
请你说详细些呀
怎么做触发器,你可以先看看SQLSERVER里自带的帮助
里面很详细
新建一个表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的值即可。
例:
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
goCREATE TRIGGER 修改触发器 ON 表
FOR update
AS
insert 日志表 (时间,动作,值) select getDAte(),'修改前',* from deleted
insert 日志表 (时间,动作,值) select getDAte(),'修改后',* from inserted
go
比较占资源。
満足条件用什么方法比较好?
触发器怎样判断呢?
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
这个我没有测试,大概是这样,如你想更详细的,自己看书