在java 中执行触发器代码、创表语句

关注依然

关注依然

2016-02-19 21:40

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐在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 "

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

              + "  INSERT INTO [NTBW].[dbo].[AlarmsMiddleTbl] "

              + "  SELECT i.[id], i.[DeviceID], i.[Aid], i.[BeginTime], "

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

              +

              "  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 "

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

              + "  INSERT INTO [NTBW].[dbo].[AlarmsMiddleTbl] "

              + "  SELECT i.[id], i.[DeviceID], i.[Aid], i.[BeginTime], "

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

              +

              "  i.[EndTime], i.[Severity], i.[CondType], i.[DetailID], i.[AckNotes], "

              + "  i.[Description], getdate() from inserted i "

              + "END "

              + "IF @@error 0 "

              + "BEGIN "

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

              + "  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;  
   
  } 

展开更多 50%)
分享

猜你喜欢

在java 中执行触发器代码、创表语句

编程语言 网络编程
在java 中执行触发器代码、创表语句

SQL Server 2008中的代码安全(二) DDL触发器与登录触发器

编程语言 网络编程
SQL Server 2008中的代码安全(二) DDL触发器与登录触发器

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在一个特定的SQL语句或会话中停用触发器

编程语言 网络编程
在一个特定的SQL语句或会话中停用触发器

MySQL 5.0 触发器

MySQL mysql数据库
MySQL 5.0 触发器

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQLCLR(三)触发器

编程语言 网络编程
SQLCLR(三)触发器

触发器基础知识

电脑入门
触发器基础知识

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

在html中接收地址栏中的参数

在html中接收地址栏中的参数

QQ和自己聊天的技巧

QQ和自己聊天的技巧
下拉加载更多内容 ↓