ショートバージョン: Visual Studio 2010のSQL Serverデータツールを使用して、SQL ServerデータプロジェクトのTSQLコードのチャンクを条件付きでコンパイルする方法はありますか?
Visual Studio 2010でSQL Serverデータツールを使用して、実験的なSQL Server Expressデータベースで作業しています。物事がうまく機能する場合の最終的な宛先は、エンタープライズSQL Serverプラットフォームです。私の会社は多くのエンタープライズデータベースについても2008から2012への移行を進めているため、あるボックスに2008インスタンスと別のボックスに2012インスタンスの両方を持っています。
私が使用した他のプログラミング言語では、プリプロセッサディレクティブを使用すると、コードベースの一部を条件付きで簡単にコンパイルできます。これの最も一般的な用途は、制限されたセクションに異なるプラットフォームの異なるコードを含めること、またはリリースビルドからデバッグ出力コードを除外することです。
これらの両方は、私が取り組んでいるいくつかのストアプロシージャで非常に役立ちます。このようなものはありますか?sqlcmd
展開中に変数を使用して特定の値を交換できることはわかっていますが、それを使用して後続のコードのチャンクを含めたり除外したりする方法を理解できません。
例:
#IF $(DebugVersion) = 'True'
-- A bunch of useful PRINTs and what not
#ELSE
SET NOCOUNT ON
#ENDIF
#IF $(SSVersion) = '2012'
SET @pretty_date = FORMAT(@some_date, 'dddd, MMM dd, yyyy')
#ELSE
SET @pretty_date = CAST(@some_date AS nvarchar(12))
#ENDIF