数据库表中增加了新记录,数据库如何及时通知外部的应用程序?

com_dcom 2003-05-19 02:08:27
如果SQL SERVER数据库中某一个表插入了新的信息,数据库怎样
及时通知外部的应用程序?好像触发器不能通知外部的应用程序,
是用存贮过程吗,怎么使用呢?
...全文
194 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
com_dcom 2003-07-03
  • 打赏
  • 举报
回复
谢谢各位,问题解决了!
yibotiemen 2003-05-19
  • 打赏
  • 举报
回复
怎么不行呢,大力
pengdali 2003-05-19
  • 打赏
  • 举报
回复
发消息:

use model
go
drop proc send_message
go
create proc send_message as begin
create table #tspid(
spid int null,
ecid int null,
status varchar(20) null,
loginname varchar(20) null,
hostname varchar(20) null,
blk bit null,
dbname varchar(20) null,
cmd varchar(20)
)

insert into #tspid(spid,ecid,status,loginname,hostname,blk,dbname,cmd) exec sp_who

create table #userip(id int identity,txt varchar(1000))

--可以得到hostName
declare @cmdStr varchar(100), @hostName varchar(30), @userip varchar(20), @sendstr varchar(100)

declare tspid cursor for select hostname from #tspid where spid>50
open tspid

fetch next from tspid into @hostname
WHILE @@FETCH_STATUS = 0
begin
select @cmdStr='ping '+@hostName
insert into #table(txt) exec master..xp_cmdshell @cmdStr

select @userip=substring(txt,charindex('[',txt)+1,charindex(']',txt)-charindex('[',txt)-1) from #table where id=2

--得到IP地址,也可以不直接用hostName
select @sendstr='net send '+@userip+'Messages!'
exec master..xp_cmdshell @sendstr
fetch next from tspid into @hostname
end

drop table #tspid
drop table #userip
end

go
喝醉的咖啡 2003-05-19
  • 打赏
  • 举报
回复
楼上说的是联机帮助手册里面的例子,查找关键字 触发器:创建 即可。
触发器执行sql语句或存储过程,因此你可以在存储过程中执行外部调用,或者调用sql语句或系统的存储过程,比如楼上的 RAISError 返回错误信息,或 print,或发送邮件 xp_sendmail 等等。
xp_cmdshell 这个是否允许我就没试过啦,应该只要有master权限是可以的,hoho

com_dcom 2003-05-19
  • 打赏
  • 举报
回复
谢谢yoki(小马哥),等我搞明白了再给你分!
yoki 2003-05-19
  • 打赏
  • 举报
回复
A. 使用带有提醒消息的触发器
当有人试图在 titles 表中添加或更改数据时,下例将向客户端显示一条消息。



说明 消息 50009 是 sysmessages 中的用户定义消息。有关创建用户定义消息的更多信息,请参见 sp_addmessage。


USE pubs
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'reminder' AND type = 'TR')
DROP TRIGGER reminder
GO
CREATE TRIGGER reminder
ON titles
FOR INSERT, UPDATE
AS RAISERROR (50009, 16, 10)
GO

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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