2012-11-15 43 views
1

我想寫5 SELECT不同類型的聲明,但具有相同的目的。哪種風格的存儲過程書寫效果更好?

我應該爲他們編寫5個單獨的存儲過程嗎?

或者我應該寫一個存儲過程並按照CASE樣式轉到特定的存儲過程?

的5項簡單的SELECT聲明是這樣的:

SELECT a, b, c FROM table1 WHERE vv = 'ss' 
SELECT a, b, c FROM table2 WHERE vv = 'ss' 
+0

你能解釋一下這5個不同的SELECT語句應該做什麼嗎?到目前爲止,您所列出的內容並不多。 – SchmitzIT

+0

@ SchmitzIT ..請參閱編輯 – James

回答

3

性能方面有優勢具有不同的SP,因爲它可以有不同的執行計劃和SQL服務器可以拿起正確的執行計劃,更有效。

有一個程序更容易維護,並減少代碼..

0

你也可以寫一個存儲過程與動態查詢,你的參數指向正確的表。

Create proc test (@table varchar(50)) 
AS 
BEGIN 
DECLARE @str varchar (MAX) 
SET @str = 'SELECT a, b, c FROM ' + @table + ' WHERE vv = ''ss''' 
EXEC(@str) 

臨在這裏:你tablename是動態
反對的:U需要定義這個表名,你調用過程。

+0

可能我不清楚..但如果表格不同意味着表格結構也會不同.. – James

+0

我不知道那:( – Schuere

相關問題