我有存儲過程A並希望通過傳遞@mydate
參數來從A調用存儲過程B.存儲過程B就返回一個行集,我可以在程序A.如何從沒有臨時表的另一個存儲過程調用存儲過程(帶參數)
我研究這在谷歌,但沒有使用臨時表沒有發現任何進一步的使用。有沒有一個簡單的方法來得到這個沒有臨時表。
P.S .:我嘗試使用存儲過程作爲A和函數B輕鬆完成此操作。但想知道我是否可以僅通過使用存儲過程來完成它。
我有存儲過程A並希望通過傳遞@mydate
參數來從A調用存儲過程B.存儲過程B就返回一個行集,我可以在程序A.如何從沒有臨時表的另一個存儲過程調用存儲過程(帶參數)
我研究這在谷歌,但沒有使用臨時表沒有發現任何進一步的使用。有沒有一個簡單的方法來得到這個沒有臨時表。
P.S .:我嘗試使用存儲過程作爲A和函數B輕鬆完成此操作。但想知道我是否可以僅通過使用存儲過程來完成它。
您可以調用Execute命令。
EXEC spDoSomthing @myDate
編輯:
既然你想回到data..that是有點困難。您可以使用用戶定義的函數來代替返回數據。
您可以使用EXECUTE命令從另一個存儲過程調用存儲過程。
說你的程序是X.然後在X,你可以使用
EXECUTE PROCEDURE Y() RETURNING_VALUES RESULT;"
如果您發佈代碼,XML或數據樣本,請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼樣本」按鈕(「{}」)以精確地設置格式並進行語法高亮顯示! –
我不認爲這個T-SQL(SQL Server)語法.... –
可以在程序創建一個表變量,而不是夯實表並執行程序B,並通過以下查詢插入到臨時表。
DECLARE @T TABLE
(
TABLE DEFINITION
)
.
.
.
INSERT INTO @T
EXEC B @MYDATE
你繼續操作。
Create PROCEDURE Stored_Procedure_Name_2
(
@param1 int = 5 ,
@param2 varchar(max),
@param3 varchar(max)
)
AS
DECLARE @Table TABLE
(
/*TABLE DEFINITION*/
id int,
name varchar(max),
address varchar(max)
)
INSERT INTO @Table
EXEC Stored_Procedure_Name_1 @param1 , @param2 = 'Raju' ,@param3 [email protected]
SELECT id ,name ,address FROM @Table
你可以調用存儲過程像這裏面的存儲過程B.
CREATE PROCEDURE spA
@myDate DATETIME
AS
EXEC spB @myDate
RETURN 0
嘗試http://stackoverflow.com/questions/209383/select-columns-from-result-set-of-存儲過程 - 你確切的問題是覆蓋在那裏。 – dash