• 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)
  • 相关阅读:
    java web的安全约束--表单的验证
    Java web的安全约束--Basic验证
    setExecuteExistingDelayedTasksAfterShutdownPolicy方法与setContinueExistingPeriodicTasksAfterShutdownPolicy方法的比较
    关于scheduleAtFixedRate方法与scheduleWithFixedDelay的使用
    ExecutorService的invokeAny方法
    CompletionService的异常处理
    CompletionService的poll方法
    include指令
    向jsp页面传值时出现乱码
    new home page
  • 原文地址:https://www.cnblogs.com/bloodofhero/p/1778951.html
Copyright © 2020-2023  润新知