2013-04-24 39 views
-2
INSERT INTO TEMP_TABLE (aNumber, aDate) VALUES ((aSproc param1, param2) , myDate)

我需要傳遞存儲過程,並將參數作爲插入語句的參數傳遞。這可能嗎?是否可以使用存儲過程作爲參數

+3

你應該嘗試一下,讓我們知道... – jcho360 2013-04-24 16:51:36

+0

我做了嘗試,我無法使它工作,這就是爲什麼我發佈這個問題。 – MrCoincidence 2013-04-24 16:56:03

+0

什麼樣的人會投下一個問題? – MrCoincidence 2013-04-24 17:42:52

回答

1

這將取決於存儲過程返回的內容。存儲過程返回SP中發出的最後一個選擇所產生的表。所以如果你的SP以SELECT NULL結尾,那麼你的SP將返回NULL,然後你的插入將返回NULL。對於您必須工作的內容,您必須確保存儲過程只返回一個值,即一行一列的表。

原因是因爲您的插入操作期望將單個值作爲其值子句的一部分,並且您可能會返回多行和多列。你可以通過以SELECT 1來結束你的SP來測試這個,它會將int返回給你的插入,然後它會有一個值類型,它可以理解爲它的值子句的一部分。

另外發布你的SP將幫助我們調試它。

+0

謝謝約翰。該sproc返回一個單一的值,如果我插入與INSERT INTO語句只有一列它的作品。我無法弄清楚的是如何在SQL Server抱怨的情況下在INSERT INTO語句中使用sproc AND另一個參數。 因此,它不是我遇到的問題,它將它用作INSERT INTO語句的參數,我遇到了麻煩... – MrCoincidence 2013-04-24 17:02:06

+1

您可以隨時使用變量來存儲SP的結果然後將該變量設置爲INSERT語句。 – usumoio 2013-04-24 17:07:37

+0

@MrCoincidence但是,這是很難幫助解決而不看你的存儲過程 – usumoio 2013-04-24 17:29:43

相關問題