0
我有一個按我希望的方式工作的函數,但是我需要添加一件事情,但是我無法完成它。在函數中自動選擇正確的數據庫
這裏的功能的大規模簡化骨架已經工作:
create function IC
(
@A date
)
returns table
as
return
(
SELECT *
FROM db1.dbo.table a LEFT JOIN
db1.dbo.table2 b
on a.randomfield=b.randomfield
where datefield = @a
)
所以,現在我可以用這個函數來調用,我想查詢的特定日期的版本。大!現在的問題是我想隨着時間的推移使這個有用。 datefield是存檔日期,今年的數據與2015年的數據不同,它與2014年的數據不在同一數據庫中,等等。我希望該函數查看@ a的年份,然後使用它來確定要將哪個數據庫查詢反對。我已經嘗試了各種不起作用的東西,但似乎動態SQL是每個人都在互聯網上得到的答案。
我想以某種方式使用if ... else語句,但一直未能將它們放在一起。有關如何進行的任何建議?
結束了嗎? –
你是說你想避免使用動態SQL?如果是這樣,你是否每年都需要修改該函數(或每次創建新數據庫時都需要閱讀)? –
你幾乎需要在這裏使用動態sql ...但你有一個問題。你正在試圖在一個函數中做到這一點,你不能在一個函數中使用動態sql。太糟糕了,您沒有對錶進行分區而不是製作數據庫的多個副本。 –