zoukankan      html  css  js  c++  java
  • sql server ISNULL失效

    最近在编写procedure时,用到了ISNULL函数,单独测试时是没有问题的,但将其用到12个月中的分别汇总就出现问题,其不能将出现null值的情况,处理为小子设置的null对应值0. 

    eg:   set @Qty=ISNULL(@Qty,0)    如果@Qty为null,应该将Qty设置为0的,然却还是为null,甚是不解;此需跟进了解……

    百度、bing一番,有的文章说在有聚合函数的时候会导致出现这种情况。最后不得不用exists来解决,如下才解决:

    if exists(select ReuseDryBatch,ReuseLudox from [Local_REUSE] where YEAR=(@char_year) and MONTH=(@char_month) ) 
        begin
                select @Reuse=(ReuseDry+ReuseLod*@Lod)
                from [Local__MU_REUSE] 
                where YEAR=(@char_year) and MONTH=(@char_month) 
        end 
    else
            begin 
            set @Reuse=0
            end

    另外还发现在sql server上执行此procedure耗时为10多秒左右,但是一到单页面应用上调用此procedure除了当前月正常,其它年月就出现超时现象……也是困扰愚一些时间,今看到其可能是由于未关闭 ANSI_WARNINGS 所致……小子尝试着在开始处set ANSI_WARNINGS off,并在尾set ANSI_WARNINGS on. 随后在单页面应用上调用,则正常。此原理还需了解……记之以备忘!

  • 相关阅读:
    6.4 记录
    Python向mysql数据库插入数据
    6.2号课下作业测试标准的好坏
    模糊查询
    日常开发问题解决
    日常开发问题解决
    tomcat容器启动失败疑难问题解决方案
    5.14 记录
    5.13 记录
    关于HTTP,TCP,IP的一些基础知识
  • 原文地址:https://www.cnblogs.com/chengcanghai/p/13939273.html
Copyright © 2011-2022 走看看