2014-11-04 53 views
-1

我有一個簡單的存儲過程,只需從幾個表中選擇數據並且只有一個輸入。我已經建立了我的存儲過程的方法如下:SET NOCOUNT ON仍然返回一個「受影響的行」消息

CREATE PROCEDURE dbo.Proc_Name 
(
@input 
) 
AS 
BEGIN 
SET NOCOUNT ON 
    BEGIN TRY 
    (
     SELECT statements go here 
    ) 
    END TRY 

    BEGIN CATCH 

    END CATCH 
END 

儘管把SET NOCOUNT ON,我仍然得到「NN行(S)的影響」的消息時,我調用存儲過程。

我試着改變SET NOCOUNT ON的位置,但這也沒有幫助。

,我注意到的另一件事是,我的存儲過程返回一個:

Warning: Null value is eliminated by an aggregate or other SET operation. 

消息。

此警告是否拋出SET NOCOUNT ON提示?

+0

您是否在運行存儲過程時檢索執行計劃?您是否將存儲過程調用的結果插入到表中?程序調用是否是您正在運行的唯一聲明?該過程是否寫入表中,並且該表上是否有觸發器?該消息可能來自其他各種地方。嘗試描述你的*整個*場景。 – 2014-11-04 17:16:16

+0

亞倫,該過程是一個簡單的選擇語句,左加入其他兩個表。它不會寫入任何其他表(因此沒有插入語句)。它是一個純粹的SELECT語句,在輸入上使用where子句過濾。我不認爲我正在檢索任何執行計劃,因爲此過程由前端Web應用程序調用。 – rvphx 2014-11-04 17:19:20

回答

0

我的壞人。 proc名稱與另一個proc名稱非常相似。原來我打電話錯誤的程序,它工作正常。我改變了我的電話,現在它工作正常。謝謝你的時間。

0

您proc的語法不正確。它應該是:

CREATE PROCEDURE dbo.Proc_Name 
@input 
AS 
BEGIN... 

括號在參數周圍是無效的,您需要關鍵字AS。我會糾正這一點,並確保你的proc實際上是編譯。
警告意味着您正在彙總可爲空的列,即使有空值,它也會返回一些值。

+0

括號不是無效的,它們只是可選的。我假設失蹤的AS只是一個轉錄問題。 – 2014-11-04 17:16:58

+0

@AaronBertrand謝謝 - 我從缺失的數據類型中得到了錯誤,我錯誤地錯誤了。 – 2014-11-04 18:13:58

相關問題