Se você estiver usando SQLCMD , poderá :r FileName
incluir um arquivo .sql separado.
: r FileName
Analisa instruções T-SQL adicionais e comandos SQLCMD do arquivo especificado por FileName no cache da instrução. FileName é lido em relação ao diretório de inicialização do Visual Studio. O arquivo é lido e executado depois que um terminador em lote é encontrado. Você pode emitir vários comandos: r. O arquivo pode incluir qualquer comando SQLCMD, incluindo o terminador em lote definido em Ferramentas, Opções. Você pode usar: r em um script de pré-implantação ou pós-implantação para incluir outros scripts.
Michael Fredrickson
fonte
No sentido dos pré-processadores C antigos, definitivamente não
Se você tiver um conjunto de arquivos com determinados caminhos absolutos, que deseja incluir em uma ordem incondicional, poderá usar a ferramenta de linha de comando sqlcmd ou o SSMS no sqlcmdmode, conforme mencionado por @mfredrickson e @Marian.
Mas se você quiser caminhos relativos ou inclusões condicionais, precisará usar algum wrapper chamando sqlcmd (ou um de seus predecessores obsoletos, isql ou osql).
Atualmente no meu trabalho nessa situação, estou revisando e estendendo o código vbs e hta antigo. Não estou completamente feliz, mas é uma decisão pragmática. Está funcionando e o usuário final está em casa com a GUI hta e nenhuma instalação de software adicional é necessária.
Para um design novo, eu começaria a pensar em usar o WPF e o PowerShell para agrupar chamadas do sqlcmd, mas com nossos clientes atuais não posso presumir a presença do PowerShell V2.
Mesmo em épocas anteriores, escrevíamos lotes simples de cmd para esse fim, alguns deles ainda em uso.
Acho que existem ferramentas atuais, especialmente aquelas direcionadas a fluxos de trabalho, que podem ser adequadas aqui. Eu não estou familiarizado com isso.
fonte
Juntamente com o modo SQLCMD no Management Studio, você também pode usar um arquivo em lotes para usá-lo como arquivo mestre para organizar e chamar todos os seus arquivos sql usando o utilitário SQLCMD .
O modo SQLCMD é uma simulação do uso do utilitário dentro do Management Studio, portanto, não há grande diferença entre os modos. Exceto que em algum momento eu prefiro executar lotes (não há mais abertura do M Studio ... carregando o db correto ... etc). Eu prefiro configurar tudo no lote, incluindo arquivos de saída.
fonte
Eu concordo, um pré-processador T-SQL é extremamente necessário. Eu desenvolvi o meu próprio em C #, o que me levou uma hora. Além de controlar a ordem de execução dos scripts SQL, também me permite ter macros que se parecem com UDFs escalares e são fáceis de usar, mas executam tão rápido quanto UDFs embutidos.
fonte
Eu gosto da resposta de bernd_k . Dependendo de como você nomeou seus scripts, como incluir um número, o SQL Server PowerShell (SQLPS) pode ser usado se você estiver executando o SQL Server 2008 ou superior. Mesmo se você estivesse usando o SQL 2005, poderia utilizar o PowerShell e o SMO para 2005.
Nota lateral: acredito que o SQLCMD acabará por ser colocado na lista depreciada e está sendo substituído pelo SQLPS, PowerShell.
Existem algumas outras opções também.
fonte
SQLCMD
avise-me, porque a maior parte do que acho é referente ao PowerShell . Também não vejo a referência ondesqlcmd
é usada com o SSDT, exceto talvez para a comparação de esquema, mas nunca uso os scripts gerados.