zoukankan      html  css  js  c++  java
  • tsmsbs项目中用到的触发器和存储过程

    代码
    --触发器
    create trigger tg_cranedata on dbo.CraneData
    for insert
    as
    begin
      
    declare @id int,@craneid int,@acttime datetime,@height int,@range int,@weight int,@moment real,@hoistspeed real,@rangespeed real
      
    declare @xacttime datetime,@xheight int,@xrange int
      
    declare @xtime int
      
    select @id=id,@craneid=craneid,@acttime=acttime,@height=height,@range=range,@weight=weight from inserted
      
    select @xacttime=acttime,@xheight=height,@xrange=range from cranedata where id=(select top 1 id from cranedata where craneid=@craneid and id<@id order by id desc)
      
    set @moment=@range*@weight*9.8/100000
      
    set @xtime=datediff(s,@xacttime,@acttime)
      
    if @xtime<10 and @xtime>0
      
    begin 
        
    set @hoistspeed=(@height-@xheight)/@xtime
        
    set @rangespeed=(@range-@xrange)/@xtime
        
    update cranedata set moment=@moment,hoistspeed=@hoistspeed,rangespeed=@rangespeed where id=@id
      
    end
      
    else
      
    begin
        
    update cranedata set moment=@moment,hoistspeed=0,rangespeed=0 where id=@id
      
    end
    end


    --存储过程
    create proc CutCraneData
    as

    drop trigger tg_cranedata

    declare @postfix varchar(20)
    declare @newname varchar(20)
    select @postfix=convert(varchar,getdate(),112)
    select @newname='CraneData'+@postfix

    EXEC SP_RENAME 'CraneData',@newname

    CREATE TABLE [dbo].[CraneData] (
        
    [Id] [int] IDENTITY (11NOT NULL ,
        
    [CraneID] [int] NULL ,
        
    [ActTime] [datetime] NULL ,
        
    [ActMillisecond] [int] NULL ,
        
    [Height] [real] NULL ,
        
    [Range] [real] NULL ,
        
    [SlewRange] [int] NULL ,
        
    [Weight] [int] NULL ,
        
    [Moment] [real] NULL ,
        
    [HoistSpeed] [real] NULL ,
        
    [RangeSpeed] [real] NULL ,
        
    [IsOverRun] [tinyint] NULL 
    ON [PRIMARY]

    declare @sqlCreateTrigger nvarchar(1500)
    set @sqlCreateTrigger=N'create  trigger tg_cranedata on dbo.CraneData
    for insert
    as
    begin
      declare @id int,@craneid int,@acttime datetime,@height int,@range int,@weight int,@moment real,@hoistspeed real,@rangespeed real
      declare @xacttime datetime,@xheight int,@xrange int
      declare @xtime int
      select @id=id,@craneid=craneid,@acttime=acttime,@height=height,@range=range,@weight=weight from inserted
      select @xacttime=acttime,@xheight=height,@xrange=range from cranedata where id=(select top 1 id from cranedata where craneid=@craneid and id<@id order by id desc)
      set @moment=@range*@weight*9.8/100000
      set @xtime=datediff(s,@xacttime,@acttime)
      if @xtime<10 and @xtime>0
      begin 
        set @hoistspeed=(@height-@xheight)/@xtime
        set @rangespeed=(@range-@xrange)/@xtime
        update cranedata set moment=@moment,hoistspeed=@hoistspeed,rangespeed=@rangespeed where id=@id
      end
      else
      begin
        update cranedata set moment=@moment,hoistspeed=0,rangespeed=0 where id=@id
      end
    end
    '

    EXEC(@sqlCreateTrigger)
  • 相关阅读:
    Android蓝牙A2DP连接实现
    精确率、召回率、准确率与ROC曲线
    gcc/g++ 使用 tricks
    python 实现 KNN 分类器——手写识别
    vim 使用 Tricks
    树莓派与node.js —— onoff、dht
    npm 包管理器的使用
    Opencv-Python 图像透视变换cv2.warpPerspective
    advanced ip scanner —— 局域网下 ip 及设备的扫描
    CPU 架构 —— ARM 架构
  • 原文地址:https://www.cnblogs.com/bloodofhero/p/1778951.html
Copyright © 2011-2022 走看看