2015-11-24 65 views
1

我有一個存儲過程,將一行以及作爲輸入參數的值列表插入表(tmp)中。使用相同的存儲過程來插入值列表和查詢結果

該表反映了另一個表(data)和我正在尋找一種方式來使用相同的SP插入來自data一行到tmp

我見過Pass result of a query into stored procedure,但我不能把INSERT放在UDF中。

有沒有一種簡單的方法,不需要

  • 這使所有的值到變量並將變量的查詢?
  • 表打字或其他補充我們已經太完整的數據庫

編輯期望的結果將是寫類似

EXEC sp_insert (SELECT c1,c2,c3 FROM data) 
+0

我們用來做一些工作前是有從臨時表存儲過程插入,所以不是傳遞參數,你有它檢查臨時表存在,如果它插入的是一個小竅門在裏面。這樣,您可以選擇數據表作爲源或其他來源 – TYY

+0

因此,您有一個接受一堆參數並將它們插入到表'tmp'中的SP。你想讓這個相同的SP插入一行到從'data'選擇的'tmp'中,而不是插入傳入的參數? 1)是否正確? 2)SP如何知道應該插入傳入的參數還是插入從'data'中選擇的行? – DeadZone

+1

我想我不明白這個問題,這聽起來像你只需要從數據到tmp執行INSERT..ELECT。 –

回答

0

也許你可以使用變量的方式表作爲SP的參數(搜索此) 它需要定義用戶定義的表類型,但我使用的是這種方法。 用作參數的表可以通過插入或從其他表中選擇來獲取值。

alter procedure sp_insert 
@table your_table_type readonly 
AS 
BEGIN 
--here you take a row (maybe the only one) from @table and insert it to TMP 
END 
+0

歡迎來到SO!感謝您的回答,它寫得很好,但我指定我正在尋找一個不使用此選項的答案。保持良好的工作。 – JNF

相關問題