簡體   English   中英

存儲過程的結果與 SSMS 查詢不同

[英]Result from Stored proc different to SSMS Query

我在存儲過程和查詢窗口中有相同的代碼,但得到不同的結果。 唯一的區別是 SP 選擇進入臨時表,然后從臨時表中選擇並且它在 SP 中運行。

SP 沒有參數 - 所以它不是參數嗅探,SP 有 ANSI_NULLS ON。

RecId 和 invoiceOrderRecId 是 bigint,品牌是 nvarchar(10)

  SELECT 
      ZIOH.Brand, 
      Count(RecId) as NumDispatched
  FROM 
      ZFSINVOICEORDERHISTORY ZIOH
  WHERE 
      ZIOH.DISPATCHDATETIME  >=  CAST(CURRENT_TIMESTAMP AS DATE)
      AND 
      ZIOH.DISPATCHDATETIME < DATEADD(DD, 1, CAST(CURRENT_TIMESTAMP AS DATE))
      AND 
      ZIOH.INVOICEORDERRECID NOT IN 
                              (SELECT 
                                   RecId 
                               FROM
                                   ZFSINVOICEORDER ZIO
                               WHERE
                                   ZIO.PARTITION = ZIOH.PARTITION)
   GROUP BY ZIOH.Brand
   ORDER BY ZIOH.Brand

查詢窗口的結果

╔═══════╦═══════════════╗
║ Brand ║ NumDispatched ║
╠═══════╬═══════════════╣
║ CCO   ║             1 ║
║ CVDUK ║            13 ║
║ FLX   ║            12 ║
║ MSFR  ║            74 ║
║ MSGR  ║             1 ║
║ MSUK  ║           211 ║
║ PIAFR ║            25 ║
║ PIAUK ║           129 ║
╚═══════╩═══════════════╝

來自 SP 的結果

╔═══════╦═══════════════╗
║ Brand ║ NumDispatched ║
╠═══════╬═══════════════╣
║ CCO   ║             1 ║
║ CVDUK ║             7 ║
║ FLX   ║            12 ║
║ MSFR  ║            53 ║
║ MSUK  ║           147 ║
║ PIAFR ║            21 ║
║ PIAUK ║           121 ║
╚═══════╩═══════════════╝

一個未提交的事務導致了結果的差異 - 那是一個早晨的損失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM