私はそれが好きなように機能していますが、1つのことを追加する必要があり、まだ実現できません。関数内の正しいデータベースを自動的に選択
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は誰もがinterwebsに到着する答えのように思えます。
何らかの理由でif ... elseステートメントを使用したいが、それをまとめることができなかった。どのように進めるための提案?
終了時に大文字と小文字を区別しましたか? –
動的SQLの使用を避けたいと言っていますか?そうであれば、毎年(または新しいデータベースが作成されるたびに読み込みが必要になるたびに)関数を変更する必要はありますか? –
ここでは、動的SQLを使用する必要がありますが、問題があります。関数内でこれを実行しようとしており、関数内で動的SQLを使用することはできません。データベースの複数のコピーを作成するのではなく、テーブルを分割していないのは残念です。 –