【问题标题】:How to validate existing bill number in new bill generation and not in update case of same generated bill?如何在新的账单生成中验证现有的账单编号,而不是在相同生成的账单的更新情况下?
【发布时间】:2016-06-16 06:03:01
【问题描述】:

我正在为账单号的存在编写一个存储过程。我只传递账单号作为参数。我希望当我们创建新账单并且用户输入已生成账单的编号时,它会在此查询中返回账单详细信息。而如果该账单以更新模式打开,则它不会返回任何内容作为其相同的账单。我已经尝试了很多并且更新模式正在工作,但新的账单案例也给出了相同的响应。请帮忙。 下面是我的SP

DECLARE @billID AS INT;
            SELECT  @billID = billID
            FROM    dbo.eInvoice_tbl_billInfo
            WHERE   billNumber = 'GW-090'
            PRINT @billID
            IF @billID = NULL
                BEGIN
                    PRINT 'new'
                    SELECT  billNumber
                    FROM    dbo.eInvoice_tbl_billInfo
                    WHERE   billNumber = 'GW-090'
                END
            ELSE
                BEGIN
                    PRINT 'update'
                    IF NOT EXISTS ( SELECT  billNumber
                                    FROM    dbo.eInvoice_tbl_billInfo
                                    WHERE   billNumber = 'GW-090'
                                            AND billID != 154 )
                        BEGIN
                            SELECT  billNumber
                            FROM    dbo.eInvoice_tbl_billInfo
                            WHERE   billNumber = 'GW-090'
                                            AND billID != 154
                        END

                END

您的帮助将不胜感激。

【问题讨论】:

  • 您是否验证了值 IF billID = NULL 在您的新案例中得到满足

标签: sql sql-server database stored-procedures logic


【解决方案1】:

只需从服务器端添加一个新的账单 ID 参数即可解决此问题。

【讨论】:

  • 无论如何,根据您的代码,IF @billID = NULL 永远不会为真,这意味着它永远不会执行用于“新”账单 ID 的语句。
【解决方案2】:

您需要将 null 比较更改为:

 IF @billID is NULL

而不是

 IF @billID = NULL

归结为 SQL 如何使用比较运算符处理 null。尝试运行以下命令,希望能更清楚地理解它:

DECLARE @billID AS INT;
set @billID = NULL
PRINT iif(@billID is null, 'same', 'different')
PRINT iif(@billID = null, 'same', 'different')
PRINT iif(null is null, 'same', 'different')
PRINT iif(null = null, 'same', 'different')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 2020-12-20
    • 2014-09-24
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 2020-01-09
    相关资源
    最近更新 更多