Versione breve: esiste un modo per compilare in modo condizionale blocchi di codice TSQL in un progetto dati di SQL Server utilizzando SQL Server Data Tools per Visual Studio 2010?
Sto usando SQL Server Data Tools in Visual Studio 2010 per lavorare su un database sperimentale di SQL Server Express. La destinazione finale se le cose funzionano bene sarebbe una piattaforma SQL Server aziendale. Ho sia un'istanza del 2008 in una casella che un'istanza del 2012 in un'altra, perché la mia azienda è in procinto di migrare dal 2008 al 2012 anche per i numerosi database aziendali.
In altri linguaggi di programmazione che ho usato, le direttive del preprocessore facilitano la compilazione condizionale di parti di una base di codice. Gli usi più comuni per questo sono avere codice diverso per piattaforme diverse in sezioni riservate o escludere il codice di output di debug dalle build di rilascio .
Entrambi potrebbero essere molto utili in alcune procedure di negozio su cui sto lavorando. C'è qualcosa di simile disponibile? So di poter utilizzare le sqlcmd
variabili per scambiare valori specifici durante la distribuzione, ma non riesco a capire come utilizzarlo per includere o escludere blocchi di codice successivi.
Esempio:
#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