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)
  • 相关阅读:
    This counter can increment, decrement or skip ahead by an arbitrary amount
    LUT4/MUXF5/MUXF6 logic : Multiplexer 8:1
    synthesisable VHDL for a fixed ratio frequency divider
    Bucket Brigade FIFO SRL16E ( VHDL )
    srl16e fifo verilog
    DualPort Block RAM with Two Write Ports and Bytewide Write Enable in ReadFirst Mode
    Parametrilayze based on SRL16 shift register FIFO
    stm32 spi sdcard fatfs
    SPI bus master for System09 (2)
    SQLSERVER中的自旋锁
  • 原文地址:https://www.cnblogs.com/bloodofhero/p/1778951.html
Copyright © 2011-2022 走看看