2013-08-26 123 views
2

我有一個存儲過程來選擇基於兩個表的數據列表。第一張桌子是固定的:CO.Country。但第二個表可以是多個表中的一個。表本身的名稱是相同的:Location。但是,表的模式不同:ABD.Location, CGA.Location, GBN.Location.如何將schema作爲參數傳遞給sql server中的存儲過程?

用戶將從應用程序中選擇模式,然後選擇的模式將作爲參數傳遞給存儲過程。

但是在創建存儲過程時解析存在錯誤。

有無論如何傳遞模式名稱作爲參數嗎?

+0

顯示您的存儲過程。你嘗試了什麼? – slavoo

回答

2

使用DynamicSql

嘗試這樣

CREATE PROCEDURE proc_name 
    @schema VARCHAR(25) 
AS 

DECLARE @Query VARCHAR(1000) 
SET @query='SELECT * FROM' [email protected] +'.Location' 
EXECUTE(@query) 
+0

這個技巧。我試過使用標準存儲過程查詢:select * from @ schema.Location。甚至不能執行。非常感謝。 – user2621831

+0

歡迎:) – Nithesh

+0

如果有必要對我有正常的查詢(沒有DynamicSql)是否可以在這種查詢中將模式作爲變量傳遞? – Misi

相關問題