java触发器如何创建表_在java 中执行触发器代码、创表语句
由于程序的需要,在SQLServer 中创建触发器及建表,碰到了在java 代码中执行创建触发器及表。
/**建立中间表*/
public static final String
createMiddleTableSQL =
"CREATE TABLE [dbo].[AlarmsMiddleTbl] ( "
+ " [id] [int] NOT NULL , "
+ " [DeviceID] [smallint] NULL , "
+ " [Aid] [char] (10) COLLATE Chinese_PRC_BIN NULL , "
+ " [BeginTime] [datetime] NULL , "
+ " [EndTime] [datetime] NULL , "
+ " [Severity] [char] (2) COLLATE Chinese_PRC_BIN NULL , "
+ " [CondType] [char] (25) COLLATE Chinese_PRC_BIN NULL , "
+ " [DetailID] [smallint] NULL , "
+
" [AckNotes] [char] (150) COLLATE Chinese_PRC_BIN NULL , "
+
" [Description] [char] (255) COLLATE Chinese_PRC_BIN NULL , "
+
" [Systemtimes] [char] (30) COLLATE Chinese_PRC_BIN NULL "
+ ") ON [PRIMARY] ";
/**在告警表上创建触发器*/
public static final String createMiddleTblTriggerSQL =
"CREATE TRIGGER t_alarms "
+ "ON [NTBW].[dbo].[Alarms] "
+ "FOR INSERT, UPDATE "
+ "AS "
+ "DECLARE @rows int "
+ "SELECT @rows = @@rowcount "
+ "IF @rows = 0 "
+ " return "
+
"IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted) "
+ "BEGIN "
+ " INSERT INTO [NTBW].[dbo].[AlarmsMiddleTbl] "
+ " SELECT i.[id], i.[DeviceID], i.[Aid], i.[BeginTime], "
+
" i.[EndTime], i.[Severity], i.[CondType], i.[DetailID], i.[AckNotes], "
+ " i.[Description], getdate() from inserted i "
+ "END "
+
"IF EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted) AND "
+ " UPDATE(EndTime) "
+ "BEGIN "
+ " INSERT INTO [NTBW].[dbo].[AlarmsMiddleTbl] "
+ " SELECT i.[id], i.[DeviceID], i.[Aid], i.[BeginTime], "
+
" i.[EndTime], i.[Severity], i.[CondType], i.[DetailID], i.[AckNotes], "
+ " i.[Description], getdate() from inserted i "
+ "END "
+ "IF @@error <> 0 "
+ "BEGIN "
+ " RAISERROR('ERROR',16,1) "
+ " rollback transaction "
+ " return "
+ "END ";
JAVA中执行以上语句过程:
view plaincopy to clipboardprint?
/**
* 创建中间表或者触发器
*
* @param sql String
* @return boolean 返回语句执行结果,true 成功,false 失败
*/
private boolean createTableOrTrigger(String sql)
{
Connection con = null;
PreparedStatement st = null;
boolean result = false;
try
{
con = dbh.getConnection();
st = con.prepareStatement(sql);
st.execute();
result = true;
dbh.closeConnections(null, st, con);
}
catch (SQLException ex)
{
Log.error("Unable to create :" +
sql + " ,ErrorCode :" + ex.getErrorCode() +
",Exception :" +
ex.getLocalizedMessage());
dbh.closeConnections(null, st, con);
}
return result;
}
java触发器如何创建表_在java 中执行触发器代码、创表语句相关推荐
- java 用流创建流_成为Java流大师–第1部分:创建流
java 用流创建流 在许多情况下,声明性代码(例如,具有Streams的功能组合)提供了出色的代码指标. 通过该动手实验文章系列进行编码,并成为Java Streams的主教练,从而成为一名更好的J ...
- mysql 存储过程 表名_MySql存储过程中执行动态SQL(表名是变量)
项目中要显示每个表的记录条数,但是因为数据库中的索引表中(infomation_schema.tables)记录的每个表的数据条数不是那么实时(超过3w多就不准了),所以要手动持久化一下再显示,持久化 ...
- 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目
王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...
- java动态是如何根据实体建表_传入Java对象 自动创建动态表 并录入数据
看到Hibernate你给一个对象,他就能动态的创建配置文件里面指定的表名,然后把数据录入到数据库,当初感觉是很神奇,不过,好像 Hibernate不能动态的分表创建表和录入数据 我这里写了一个公用的 ...
- java导出数据透视表_使用数据库中的Java流制作数据透视表
java导出数据透视表 来自数据库行和表的原始数据不能为人类读者提供太多了解. 相反,如果我们对数据执行某种聚合,则人类更有可能看到数据模式 在向我们展示之前. 数据透视表是聚合的一种特定形式,我们可 ...
- JAVA两个表相关联_关于Java:如何将多对多关联映射到映射到两个不同表的类?...
我有一个凭证-POJO映射到两个表. 第一个映射分配一个实体名称" voucherA",并将POJO映射到TableA. 第二个映射使用" voucherB"作 ...
- java线程的创建线程_多线程(Thread、线程创建、线程池)
第1章 多线程 1.1 多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序, ...
- java创建临时文件_用Java创建一个临时文件
java创建临时文件 The task is to create a temporary file in Java. 任务是用Java创建一个临时文件. Creating a temporary fi ...
- java 实现内存数据表_数据结构 Java中的内存
根据线性表的实际存储方式,分为两种实现模型: 顺序表 ,将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示. 链表 ,将元素存放在通过链接构造起来的一系列存储块中. 一.顺 ...
最新文章
- OpenGL函数功能glutTimerFunc()
- 2018 AI产业投融资分析:热钱涌向何处,谁的“寒冬”将至?
- 博客园模板 样式优化
- Unity3D学习笔记(二) 一些常用的空间函数
- 为什么不敢和别人竞争_看懂这个自我评价发展曲线,你就明白,为什么青春期孩子如此叛逆...
- 7-4 吃货的最短路径 (10 分)
- Android Studio小技巧
- 一篇图像识别的科普文
- 了解java虚拟机—非堆相关参数设置(4)
- Java的clone方法
- Node.js 中 exports 和 module.exports 的区别
- Word编辑公式的快捷键与命令
- 【MDT】iPhone XS 系列屏幕素质报告
- angular 架构
- 阿里首席架构师讲解“双十一”亿级流量高并发的系统架构搭建方法
- Linux版本查看及PS1配置
- 企业文件加密系统 — 文件透明加密的优势和功能
- 还记得那些老国手吗? 07
- 开关电源环路补偿设计及调节笔记
- Windows下查看mysql是否启动