用SQL远程数据库触发器一个应用程序,让应用程序即时更新所查询数据
想用触发器做一个通信的系统,就是当向表中插入一条记录时,触发连接该数据库的应用程序的更新,即时更新所查询的数据.而且是一个远程服务器数据库.希望各位帮帮忙,指点指点.最好给出SQL语言实例看看.
[解决办法]
ALTER TRIGGER [dbo].[trgCard2_Update] on Card2 for Update
AS
if Update(CRD_NO)
begin
declare @sysdate datetime ;
set @sysdate = getdate();
--修改前的資料料
insert into Card2_log (CRD_NO,S_NO,C_NO,CRD_STATUS,CRE_DATE,CRE_USER,UPD_DATE,UPD_USER,REMARK,IS_SEND,SYS_DATE,FLAG)
select CRD_NO,S_NO,C_NO,CRD_STATUS,CRE_DATE,CRE_USER,UPD_DATE,UPD_USER,REMARK,IS_SEND,@sysdate, '0 '
from deleted
--修改后的資料
insert into Card2_log (CRD_NO,S_NO,C_NO,CRD_STATUS,CRE_DATE,CRE_USER,UPD_DATE,UPD_USER,REMARK,IS_SEND,SYS_DATE,FLAG)
select CRD_NO,S_NO,C_NO,CRD_STATUS,CRE_DATE,CRE_USER,UPD_DATE,UPD_USER,REMARK,IS_SEND,@sysdate, '1 '
from inserted
end
[解决办法]
触发器只是表的内容发生改变时,进行触发操作,怎么可能去触发应用程序
[解决办法]
触发器中调用
xp_cmdshell()来调用你的应用程序,如果你的应用程序支持命令行的话
[解决办法]
-- try
exec master.dbo.xp_cmdshell 'dir C:\*.* '
-- try again
exec master.dbo.xp_cmdshell 'dir C:\*.* ', no_output
[解决办法]
去查查联机丛书xp_cmdshell 命令就知道了
[解决办法]
我想楼主的意思大概是这样的,看看对不对。
比方前端用户a查出了职工表的所有数据并在程序里的以表格形式显示出来了,这时候用户b修改了或者增加某个用户的数据,那么用户a看到的数据就不是正确的了,从这个角度讲需要更新。
这个问题,恰恰是数据库的致命弱点。数据库只能接受指令更新这个那个,他不会也不能通知用户数据库更新了这个那个。