none
29/2 עלול לעשות בעיות, נראה ש ISNULL לוקח בזה חלק לא קטן RRS feed

  • שאלה

  • פתאום מדווחים על תקלה בדוח.
    בדיקה מעמיקה ב SP מעלה בעיה בשימוש ב ISNULL.

    לידיעתם,

    תריצו את הסקריפט ואולי מישהו חכם יסביר מה קורה כאן, פתרון יש אבל בפורום הזה ישנם חוקרים לא קטנים.

    CREATE TABLE dbo.zz (
    stam varchar(5) null,
    stam_date smalldatetime null
    )

    INSERT INTO dbo.zz VALUES('aa', '20160210')


    DECLARE @stam_date AS VArchar(8) = NULL

    SELECT      *
    FROM  dbo.zz
    WHERE stam_date > '20160201'
            AND
    stam_date = ISNULL(@stam_date, stam_date)

    -- נבצע הכנסת רשומה של ה 29/2
    INSERT INTO dbo.zz VALUES('aa', '20160229')

    -- נריץ שוב את השאילתה
    SELECT      *
    FROM  dbo.zz
    WHERE stam_date > '20160201'
            AND
    stam_date = ISNULL(@stam_date, stam_date)

    -- ועם COALESCE 
    SELECT      *
    FROM  dbo.zz
    WHERE stam_date > '20160201'
                AND
                stam_date = COALESCE(@stam_date, stam_date)

    יום שני 29 פברואר 2016 06:37

כל התגובות