我有一個存儲過程,它是完美的執行,當我使用:如何到位單個值傳遞多個值到存儲過程
exec spSampleAmount 12212,0
現在我需要通過像「12212, 12213,12214,12215「,這些值來自另一個查詢。如何將此查詢結果傳遞給2個參數存儲過程。
exec spSampleAmount param1,param2;
param1有一組值。
我有一個存儲過程,它是完美的執行,當我使用:如何到位單個值傳遞多個值到存儲過程
exec spSampleAmount 12212,0
現在我需要通過像「12212, 12213,12214,12215「,這些值來自另一個查詢。如何將此查詢結果傳遞給2個參數存儲過程。
exec spSampleAmount param1,param2;
param1有一組值。
將第一個查詢的輸出存儲在參數中。首先聲明參數,然後將第一個查詢的值分配給該參數,然後調用exec
命令來執行存儲過程。
DECLARE @V_Param1 VARCHAR(1000);
SELECT @V_Param1 = Rest of query
EXEC spSampleAmount @V_Param1, 0
@shah感謝您的回答 SELECT ID FROM頭WHERE日之間'10 -1-2013' 和'11 -1-2013' 上面的查詢返回12行,因此錯誤來了這樣的「子查詢返回的值超過1,當子查詢遵循=,!=,<, <= , >,> =或者子查詢用作表達式時,這是不允許的。 –
不客氣 –
你能告訴我如何克服這個錯誤。 –
如果它被SSRS調用它是可能的,我不知道它是如何工作的,但它是。
你有2種方式從ssrs,sql query和write execute調用存儲過程。或者選擇執行存儲過程。
通過這種方式,您可以將選擇從多個項目選擇組合框傳遞到存儲過程,並在您的存儲過程中執行:myparam in(@paramreceived)。
它應該也可以在.Net中。
我想這樣做在TSQL和我從來沒有成功過,所以我interrested太多,如果存在這一問題
如果存儲過程有兩個參數,你不能傳遞更多解決方案(除非有是可選參數)。重寫存儲過程。 –
重寫spSampleAmount,分割「12212,12213,12214,12215」並使用它。因此,您還需要stringsplit函數,它將「12212,12213,12214,12215」並返回表。或者不要修改spSampleAmount而是循環在proc中你打電話給這個,分開參數並逐一傳球。現在你的球場上有球。 – KumarHarsh