亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

一個跨月請假單據判斷觸發器

系統 2088 0
      
         1
      
      
        use
      
      
         hrmis


      
      
         2
      
      
        set
      
       ANSI_NULLS 
      
        ON
      
      
         3
      
      
        set
      
       QUOTED_IDENTIFIER 
      
        ON
      
      
         4
      
      
        GO
      
      
         5
      
      
        Alter
      
      
        Trigger
      
      
        [
      
      
        dbo
      
      
        ]
      
      .
      
        [
      
      
        Tg_k20_month
      
      
        ]
      
      
        on
      
      
        [
      
      
        dbo
      
      
        ]
      
      .
      
        [
      
      
        k20
      
      
        ]
      
      
         6
      
      
        FOR
      
      
        insert
      
      ,
      
        update
      
      
         7
      
      
        AS
      
      
         8
      
      
        if
      
      (
      
        update
      
      (k2006)) 
      
        or
      
       (
      
        update
      
      
        (k2007))


      
      
         9
      
      
        BEGIN
      
      
        10
      
      
        declare
      
      
        @msg
      
      
        nvarchar
      
      (
      
        80
      
      ), 
      
        @begTIme
      
      
        datetime
      
      , 
      
        @endTime
      
      
        datetime
      
      
        ;


      
      
        11
      
      
        declare
      
      
        @Year
      
      
        int
      
      , 
      
        @Month
      
      
        int
      
      
        ;


      
      
        12
      
      
        --
      
      
        獲取請假的年份及月份
      
      
        13
      
      
        select
      
      
        @Year
      
      
        =
      
      
        Year
      
      
        (k2006),


      
      
        14
      
      
        @Month
      
      
        =
      
      
        Case
      
      
        15
      
      
        When
      
      
        Day
      
      (k2006) 
      
        >
      
      
        25
      
      
        Then
      
      
        Month
      
      (k2006)
      
        +
      
      
        1
      
      
        16
      
      
        else
      
      
        Month
      
      
        (k2006)


      
      
        17
      
      
        End
      
      
        18
      
      
        From
      
      
         Inserted;


      
      
        19
      
      
        --
      
      
        計算請假單據的開始時間所在的月份
      
      
        20
      
      
        Select
      
      
        @endTime
      
      
        =
      
      
        Case
      
      
        21
      
      
        When
      
      
        @Month
      
      
        <
      
      
        10
      
      
        Then
      
      
        Convert
      
      (
      
        varchar
      
      (
      
        4
      
      ),
      
        @Year
      
      )
      
        +
      
      
        '
      
      
        0
      
      
        '
      
      
        +
      
      
        Convert
      
      (
      
        varchar
      
      (
      
        1
      
      ),
      
        @Month
      
      )
      
        +
      
      
        '
      
      
        25
      
      
        '
      
      
        22
      
      
        else
      
      
        Convert
      
      (
      
        datetime
      
      , 
      
        Convert
      
      (
      
        varchar
      
      (
      
        4
      
      ),
      
        @Year
      
      )
      
        +
      
      
        Convert
      
      (
      
        varchar
      
      (
      
        1
      
      ),
      
        @Month
      
      )
      
        +
      
      
        '
      
      
        25
      
      
        '
      
      
        )


      
      
        23
      
      
        End
      
      
        24
      
      
        --
      
      
             ,@begTime = Case
      
      
        25
      
      
        --
      
      
              When @Month < 11 Then Convert(varchar(4),@Year)+'0'+Convert(varchar(1),@Month-1)+'26'
      
      
        26
      
      
        --
      
      
              else Convert(varchar(4),@Year)+Convert(varchar(1),@Month-1)+'26'
      
      
        27
      
      
        --
      
      
               End
      
      
        28
      
      
        if
      
      
        exists
      
      (
      
        Select
      
       A0188 
      
        From
      
       Inserted 
      
        Where
      
       k2007 
      
        >
      
      
        @endTime
      
      
        )


      
      
        29
      
      
        Begin
      
      
        30
      
      
        Select
      
      
        @msg
      
      
        =
      
      
        Convert
      
      (
      
        varchar
      
      (
      
        5
      
      ),k2006,
      
        110
      
      )
      
        +
      
      
        '
      
      
      
        '
      
      
        +
      
      
        Convert
      
      (
      
        varchar
      
      (
      
        5
      
      ),k2007,
      
        110
      
      )
      
        +
      
      
        31
      
      
        '
      
      
        此段時間內有跨月現象,請按月份重新錄入!
      
      
        '
      
      
        from
      
      
         Inserted 


      
      
        32
      
      
        raiserror
      
      (
      
        @msg
      
      ,
      
        16
      
      ,
      
        1
      
      
        )


      
      
        33
      
      
        rollback
      
      
        transaction
      
      
        34
      
      
        return
      
      
        35
      
      
        End
      
      
        36
      
      
        End
      
      
        37
      
      
        return
      
    


有一個問題,是后來發現的,上面SQL語句中有一段:

      
        1
      
      
        if
      
      
        exists
      
      (
      
        Select
      
       A0188 
      
        From
      
       Inserted 
      
        Where
      
       k2007 
      
        >
      
      
        @endTime
      
      
        )


      
      
        2
      
      
        Begin
      
      
        3
      
      
        Select
      
      
        @msg
      
      
        =
      
      
        Convert
      
      (
      
        varchar
      
      (
      
        5
      
      ),k2006,
      
        110
      
      )
      
        +
      
      
        '
      
      
      
        '
      
      
        +
      
      
        Convert
      
      (
      
        varchar
      
      (
      
        5
      
      ),k2007,
      
        110
      
      )
      
        +
      
      
        4
      
      
        '
      
      
        此段時間內有跨月現象,請按月份重新錄入!
      
      
        '
      
      
        from
      
      
         Inserted 


      
      
        5
      
      
        raiserror
      
      (
      
        @msg
      
      ,
      
        16
      
      ,
      
        1
      
      
        )


      
      
        6
      
      
        rollback
      
      
        transaction
      
      
        7
      
      
        return
      
      
        8
      
      
        End
      
    

其中raiserror(@msg,16,1)
是拋出一個錯誤級別為16的異常信息,這個信息能否被C#里的catch語句捕足?具體怎么捕捉?由于今天是在轉我QQ空間的資料,所以暫時寫一點,日后我看到的話,回來再補回。

一個跨月請假單據判斷觸發器


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 五月色婷婷琪琪综合伊人 | 视频一区二区三区在线观看 | 天天做天天添天天谢 | 自拍视频国产 | 久久国产热这里只有精品8 久久国产三级 | 精品无人区乱码一区2区3区 | 日本最黄视频 | 久久国产免费一区二区三区 | 欧美大片日韩精品四虎影视 | 综合网在线视频 | 国产性videostv另类极品 | 一级毛片美国一级j毛片不卡 | 欧美成人免费公开播放 | 国产操穴| 中国女人69xxxxx | 色综合视频一区二区观看 | 国模私拍视频在线观看 | 亚州一级毛片在线 | 亚洲欧美精品综合中文字幕 | 欧美综合图区亚洲综合图区 | 国内精品51视频在线观看 | 亚洲精品久久久久综合网 | 国产精品亚洲成在人线 | 毛片女人十八以上观看 | 国产视频不卡 | 日韩精品一区二三区中文 | a毛片免费看| 玖玖在线免费视频 | 亚洲va在线va天堂va四虎 | 性生活一级毛片 | 亚洲成人综合在线 | 一区二区三区中文字幕 | 97成人资源 | 亚洲一本通| 国产三级精品三级男人的天堂 | 香蕉视频免费在线 | 日本高清一级做a爱过程免费视频 | 日韩区在线 | 国产成人精品一区二区免费 | 久久视频免费在线观看 | 中文字幕在线观看免费视频 |