2011-03-02 69 views

回答

4

有兩種方法,你可以做到這一點:

  1. 寫多個查詢(每個表),然後中再根據上述參數值
  2. 使用動態SQL

切換對於1,你會這樣做:

if @param = 'value' 
    select Col1, Col2 from Table1 
else 
    select Col1, Col2 from Table2 

對於2,你會做這樣的事情:

declare @sql nvarchar(4000) 

select @sql = 'select Col1, Col2 from' + (case when @param = 'value' then 'Table1' else 'Table2' end) 

sp_executesql @sql 

警告:要非常小心選擇2.如果選項1是可行的,那麼它是更安全的選擇,如動態地構建基於用戶提供的值SQL始終是一個危險的戀情。雖然這個特殊的例子並沒有直接在SQL中使用這個參數,但是編寫這樣的東西很容易,因此很容易找到利用它的方法。

相關問題