【问题标题】:trigger sql null datetime variable触发 sql 空日期时间变量
【发布时间】:2016-06-23 17:21:09
【问题描述】:

我正在用 sql server 编写一个 sql 触发器 在这个条款中

IF  (@EXON = '' OR @DATEDEB='' OR @DATEFIN= '') AND @N_CATComp =4

@DATEDEB @DATEFIN 是日期时间变量,应用程序接受我想要的这两个变量的空值,在这种情况下不接受空值,这只适用于第一个变量 @EXON 请帮忙

【问题讨论】:

    标签: sql sql-server-2008 datetime null


    【解决方案1】:
    IF  (@EXON = '' OR ISNULL(@DATEDEB, '') ='' OR ISNULL(@DATEFIN, '') = '')
    

    如果它为 null,它将返回 ''

    【讨论】:

    • 谢谢,但如果 DATEDEB null DATEFIN NULL AND EXON 不为 null,则问题未解决
    • @hollyx 那么问题出在哪里?您需要提供更多数据示例和预期输出。
    • 如果@N_CATComp = 4,我们必须输入三个值,在我的情况下,如果我只输入 EXON 值并且 N_CATCOMPT = 4 它通过但必须输入三个值跨度>
    • @hollyx 不明白你的意思,在你的答案中包含值和预期输出。
    • 如果 catcompt=4 then exon=123 and DATEDEB=10032016 and ,DATEFIN=11032016 if i have exon=123 and DATEDEB='' and DATEFIN='' then this must be false 错误信息出现在我的情况,如果我只为 catcomt=4 输入 EXON,那么没有错误,但这是错误的 DATEDEB 并且 DATEFIN 不能为空
    【解决方案2】:

    要检查变量 @MyVar 的值是否等于 null,您应该这样做:

    if (@MyVar IS NULL)
        print '@MyVar has a NULL value'
    else
        print '@MyVar value is not NULL'
    

    您还应该查看有关帮助函数 NULLIF 和 ISNULL 的文档。

    【讨论】:

      【解决方案3】:

      IF (@EXON = '' OR @DATEDEB='' OR @DATEDEB IS NULL OR @DATEFIN= '' OR @DATEFIN IS NULL) AND @N_CATComp =4

      【讨论】:

        猜你喜欢
        • 2020-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多