User-Profile-Image
hankin
  • 5
  • Java
  • Kotlin
  • Spring
  • Web
  • SQL
  • MegaData
  • More
  • Experience
  • Enamiĝu al vi
  • 分类
    • Zuul
    • Zookeeper
    • XML
    • WebSocket
    • Web Notes
    • Web
    • Vue
    • Thymeleaf
    • SQL Server
    • SQL Notes
    • SQL
    • SpringSecurity
    • SpringMVC
    • SpringJPA
    • SpringCloud
    • SpringBoot
    • Spring Notes
    • Spring
    • Servlet
    • Ribbon
    • Redis
    • RabbitMQ
    • Python
    • PostgreSQL
    • OAuth2
    • NOSQL
    • Netty
    • MySQL
    • MyBatis
    • More
    • MinIO
    • MegaData
    • Maven
    • LoadBalancer
    • Kotlin Notes
    • Kotlin
    • Kafka
    • jQuery
    • JavaScript
    • Java Notes
    • Java
    • Hystrix
    • Git
    • Gateway
    • Freemarker
    • Feign
    • Eureka
    • ElasticSearch
    • Docker
    • Consul
    • Ajax
    • ActiveMQ
  • 页面
    • 归档
    • 摘要
    • 杂图
    • 问题随笔
  • 友链
    • Spring Cloud Alibaba
    • Spring Cloud Alibaba - 指南
    • Spring Cloud
    • Nacos
    • Docker
    • ElasticSearch
    • Kotlin中文版
    • Kotlin易百
    • KotlinWeb3
    • KotlinNhooo
    • 前端开源搜索
    • Ktorm ORM
    • Ktorm-KSP
    • Ebean ORM
    • Maven
    • 江南一点雨
    • 江南国际站
    • 设计模式
    • 熊猫大佬
    • java学习
    • kotlin函数查询
    • Istio 服务网格
    • istio
    • Ktor 异步 Web 框架
    • PostGis
    • kuangstudy
    • 源码地图
    • it教程吧
    • Arthas-JVM调优
    • Electron
    • bugstack虫洞栈
    • github大佬宝典
    • Sa-Token
    • 前端技术胖
    • bennyhuo-Kt大佬
    • Rickiyang博客
    • 李大辉大佬博客
    • KOIN
    • SQLDelight
    • Exposed-Kt-ORM
    • Javalin—Web 框架
    • http4k—HTTP包
    • 爱威尔大佬
    • 小土豆
    • 小胖哥安全框架
    • 负雪明烛刷题
    • Kotlin-FP-Arrow
    • Lua参考手册
    • 美团文章
    • Java 全栈知识体系
    • 尼恩架构师学习
    • 现代 JavaScript 教程
    • GO相关文档
    • Go学习导航
    • GoCN社区
    • GO极客兔兔-案例
    • 讯飞星火GPT
    • Hollis博客
    • PostgreSQL德哥
    • 优质博客推荐
    • 半兽人大佬
    • 系列教程
    • PostgreSQL文章
    • 云原生资料库
    • 并发博客大佬
Help?

Please contact us on our email for need any support

Support
    首页   ›   Java   ›   Java Notes   ›   正文
Java Notes

Java—利用触发器监听sqlserver数据库

2020-09-01 00:20:45
1612  0 0
参考目录 隐藏
1) 1.创建Insert触发器
2) 2.创建存储过程
3) 备注:可能出现错误
4) 1.开启 Ole Automation Procedures
5) 2.关闭 Ole Automation Procedures
6) 3.关闭高级选项

阅读完需:约 3 分钟

触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。

触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。SQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有create、alter、drop语句。

相关内容:

SQL Server—trigger触发器


1.创建Insert触发器

USE [appsmart]
GO
/****** Object:  Trigger [dbo].[notify_trigger]    Script Date: 01/25/2017 09:31:28 ******/
   SET ANSI_NULLS ON
GO
  SET QUOTED_IDENTIFIER ON
GO
----------------创建触发器
 ALTER TRIGGER [dbo].[notify_trigger] ON  [dbo].[Table_Test]
 AFTER INSERT 
AS  
BEGIN 
DECLARE @userName NVARCHAR(20)   --Insert触发器 下面为inserted相当于触发器的一个虚拟插入表
  set @userName=(select inserted.userName from inserted)

  EXEC testProPush @userName ---调用存储过程并传参 如果传入的参数未变则不会触发
END  

2.创建存储过程

USE [appsmart]
GO
/****** Object:  StoredProcedure [dbo].[testPro]    Script Date: 01/25/2017 09:18:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[testPro](
@userName varchar(50)
)
AS
BEGIN
declare @ServiceUrl as varchar(1000)

PRINT 'http://192.168.0.124:8080/overhaul/iosPush.action?deviceToken='+@userName ---触发触发时传过来的参数
set @ServiceUrl='http://192.168.0.124:8080/overhaul/iosPush.action?deviceToken='+@userName

  Declare @Object as Int
  Declare @ResponseText as Varchar(8000)
  Exec sp_OACreate'MSXML2.XMLHTTP',@Object OUT;
  Exec sp_OAMethod @Object, 'open',NULL,'get',@ServiceUrl,'false' 
  Exec sp_OAMethod @Object,'send' 
  Exec sp_OAMethod @Object,'responseText',@ResponseText OUTPUT 

Select @ResponseText
Exec sp_OADestroy @Object
END

在表中插入数据时触发器会调用接口

INSERT INTO [appsmart].[dbo].[Z_UserInfo] (userAccount, userName,userCode) VALUES 
('123112', 'de1222','1');

如果你的表名是demo,接收java接口的@RequestMapping 里也是叫demo, 那么无论你在怎么增加  它都不会跑到这个方法


备注:可能出现错误

SQL Server 阻止了对组件“Ole Automation Procedures”的 过程“sys.sp_OACreate”的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用“Ole Automation Procedures”。有关启用“Ole Automation Procedures”的详细信息,请搜索 SQL Server 联机丛书中的“Ole Automation Procedures”。语句已终止。


1.开启 Ole Automation Procedures

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ole Automation Procedures';
GO
 

2.关闭 Ole Automation Procedures

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ole Automation Procedures';
GO
 

3.关闭高级选项

sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO

如本文“对您有用”,欢迎随意打赏作者,让我们坚持创作!

0 打赏
Enamiĝu al vi
不要为明天忧虑.因为明天自有明天的忧虑.一天的难处一天当就够了。
543文章 68评论 296点赞 606023浏览

随机文章
Spring笔记15—声明式事务
5年前
SpringBoot—配置拦截器(HandlerInterceptor)
5年前
@LoadBalanced注解为何就让RestTemplate拥有负载均衡的能力?(Ribbon)
5年前
RabbitMQ——发布订阅模式
5年前
SpringSecurity—AuthenticationManager(用户的全局和局部定义)
5年前
博客统计
  • 日志总数:543 篇
  • 评论数目:68 条
  • 建站日期:2020-03-06
  • 运行天数:1943 天
  • 标签总数:23 个
  • 最后更新:2024-12-20
Copyright © 2025 网站备案号: 浙ICP备20017730号 身体没有灵魂是死的,信心没有行为也是死的。
主页
页面
  • 归档
  • 摘要
  • 杂图
  • 问题随笔
博主
Enamiĝu al vi
Enamiĝu al vi 管理员
To be, or not to be
543 文章 68 评论 606023 浏览
测试
测试
看板娘
赞赏作者

请通过微信、支付宝 APP 扫一扫

感谢您对作者的支持!

 支付宝 微信支付