當寫我的SQL命令時,我指定?
來表明我想使用傳入的參數。但是,對於我使用的每個?
,該包認爲這是一個新參數,即使我想使用同一個參數。SSIS - 在OLE DB Source中只指定一個參數,並帶有多個'?'
有沒有一種方法可以只指定一個參數?
感謝
當寫我的SQL命令時,我指定?
來表明我想使用傳入的參數。但是,對於我使用的每個?
,該包認爲這是一個新參數,即使我想使用同一個參數。SSIS - 在OLE DB Source中只指定一個參數,並帶有多個'?'
有沒有一種方法可以只指定一個參數?
感謝
您可以通過在您的SQL命令中聲明一個變量並將其傳遞給參數,然後在WHERE
子句中使用此變量來實現此目的。像下面
DECLARE @str AS INT
SET @str = ?
SELECT Column1
FROM Table1
WHERE (Column2= @str or Column3 = @str)
其他解決方法
1)
假設您想要創建下面的查詢
Select * From Table1 Where [Column1] = ? Or [Column2] = ?
User::strQuery
)User::Value
)EvaluateAsExpression
屬性爲True設置表達式如下:
"Select * From Table1 Where [Column1] = " + @[User::Value] + " OR [Column2] = " + @[User::Value]
在OLEDB Source
將源設置爲SQL Command from variable
和選擇可變@[User::strQuery]
2)
可以創建取一個參數,並使用它存儲過程或一個表值函數作爲源
我明白了,這很公平。我對我的問題感到羞愧。謝謝 – user3428422
你能聲明一個變量,你的SQL語句的腳本,通過α取的參數值內,然後使用變量之後呢?
在SQL Server上創建一個採用一個參數幷包含正確查詢的存儲過程。用一個參數調用存儲過程。
你可以聲明一個變量,傳遞一個參數並在Where子句中使用它。看看我的回答 – Hadi