Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Usando o Editor de Consultas do Mecanismo de Banco de Dados no SQL Server Management Studio, você pode escrever e editar consultas como scripts SQLCMD. Você usa scripts SQLCMD ao processar comandos do sistema Windows e instruções Transact-SQL no mesmo script.
Modo SQLCMD
Para usar o Editor de Consultas do Mecanismo de Banco de Dados para escrever ou editar scripts SQLCMD, você deve habilitar o modo de script SQLCMD. Por padrão, o modo SQLCMD não é permitido no Editor de Consultas. Você pode habilitar o modo de script selecionando o ícone Modo SQLCMD na barra de ferramentas ou selecionando Modo SQLCMD no menu Consulta .
Observação
Habilitar o modo SQLCMD desativa o IntelliSense e o depurador Transact-SQL no Editor de Consultas do Mecanismo de Banco de Dados.
Os scripts SQLCMD no Editor de Consultas podem usar os mesmos recursos que todos os scripts Transact-SQL usam. Esses recursos incluem o seguinte:
- Codificação de cores
- Execução de scripts
- Controlo de origem
- Análise de scripts
- Plano de exposição
Habilitar scripts SQLCMD no Editor de Consultas
Para ativar o script SQLCMD para uma janela ativa do Editor de Consultas do Mecanismo de Banco de Dados, use o procedimento a seguir.
Alternar uma janela do editor de consultas do mecanismo de banco de dados para o modo SQLCMD
No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e selecione Nova Consulta para abrir uma nova janela do Editor de Consultas do Mecanismo de Banco de Dados.
No menu Consulta, selecione Modo SQLCMD.
O Editor de Consultas executa instruções SQLCMD no contexto do Editor de Consultas.
Na barra de ferramentas do Editor SQL , na lista Bancos de Dados Disponíveis , selecione
AdventureWorks2025.Na janela Editor de Consultas, digite as seguintes instruções Transact-SQL e a instrução SQLCMD
!!DIR:SELECT DISTINCT Type FROM Sales.SpecialOffer; GO !!DIR GO SELECT ProductCategoryID, Name FROM Production.ProductCategory; GOPressione F5 para executar a seção de instruções mistas Transact-SQL e MS-DOS.
Observe os dois painéis de resultados SQL da primeira e terceira instruções.
No painel Resultados , selecione a guia Mensagens para ver as mensagens das três instruções:
- (6 linhas afetadas)
- <As informações do diretório>
- (4 linhas afetadas)
Importante
Quando executado a partir da linha de comando, o utilitário sqlcmd permite a interação total com o sistema operacional. Ao usar o Editor de Consultas no Modo SQLCMD, você deve ter cuidado para não executar instruções interativas. O Editor de Consultas não pode responder aos prompts do sistema operacional.
Para obter mais informações sobre como executar o SQLCMD, consulte o utilitário sqlcmd ou faça o tutorial SQLCMD.
Habilitar scripts SQLCMD por padrão
Para ativar o script SQLCMD por padrão, no menu Ferramentas , selecione Opções, expanda Execução de Consulta e SQL Server, selecione a página Geral e marque a caixa Por padrão abrir novas consultas no Modo SQLCMD .
Escrever e editar scripts SQLCMD
Depois de habilitar o modo de script, você pode escrever comandos SQLCMD e instruções Transact-SQL. Aplicam-se as seguintes regras:
Os comandos SQLCMD devem ser a primeira instrução em uma linha.
Apenas um comando SQLCMD é permitido em cada linha.
Os comandos SQLCMD podem ser precedidos por comentários ou espaço em branco.
Os comandos SQLCMD dentro de caracteres de comentário não são executados.
Os caracteres de comentário de linha única são dois hífenes (
--)e devem aparecer no início de uma linha.Os comandos do sistema operacional devem ser precedidos por dois pontos de exclamação (
!!). O comando dois pontos de exclamação faz com que a instrução que segue os pontos de exclamação seja executada usando o processador de comandocmd.exe. O texto depois de!!é passado como um parâmetro paracmd.exe, de modo que a linha de comando final será executada como:"%SystemRoot%\system32\cmd.exe /c <text after !!>".Para fazer uma distinção clara entre comandos SQLCMD e Transact-SQL, todos os comandos SQLCMD precisam ser prefixados com dois pontos (
:).O
GOcomando pode ser usado sem prefácio ou precedido por!!:O Editor de Consultas do Mecanismo de Banco de Dados oferece suporte a variáveis de ambiente e variáveis definidas como parte de um script SQLCMD, mas não oferece suporte a variáveis SQLCMD ou osql internas. O processamento SQLCMD pelo SQL Server Management Studio é sensível a maiúsculas e minúsculas para variáveis. Por exemplo, PRINT '$(COMPUTERNAME)' produz o resultado correto, mas PRINT '$(ComputerName)' retorna um erro.
Atenção
O SQL Server Management Studio usa o Microsoft .NET Framework SqlClient para execução no modo regular e SQLCMD. Quando executado a partir da linha de comando, o SQLCMD usa o provedor OLE DB. Como diferentes opções padrão podem ser aplicadas, você pode obter um comportamento diferente ao executar a mesma consulta no modo SQLCMD do SQL Server Management Studio e no utilitário sqlcmd .
Sintaxe SQLCMD suportada
O Editor de Consultas do Mecanismo de Banco de Dados suporta as seguintes palavras-chave de script SQLCMD:
[!!:]GO[count]!! <command>:exit(statement):Quit:r <filename>:setvar <var> <value>:connect server[\instance] [-l login_timeout] [-U user [-P password]]:on error [ignore|exit]:error <filename>|stderr|stdout:out <filename>|stderr|stdout
Observação
Envie a saída para a guia de mensagens para :error e :out, stderr e stdout.
Os comandos SQLCMD não listados acima não são suportados no Editor de Consultas. Quando um script contendo palavras-chave SQLCMD que não são suportadas é executado, o editor de consultas envia uma mensagem "Ignorando comando <ignorado>" para o destino de cada palavra-chave não suportada. O script é executado com êxito, mas os comandos sem suporte são ignorados.
Atenção
Como você não inicia o SQLCMD a partir da linha de comando, há algumas limitações ao executar o Editor de Consultas no modo SQLCMD. Não é possível passar parâmetros de linha de comando, como variáveis, e, como o Editor de Consultas não pode responder aos prompts do sistema operacional, você deve ter cuidado para não executar instruções interativas.
Codificação de cores em scripts SQLCMD
Com o script SQLCMD habilitado, os scripts são codificados por cores. O código de cores para palavras-chave Transact-SQL permanece o mesmo. Os comandos SQLCMD são apresentados com um plano de fundo sombreado.
Exemplos
O exemplo a seguir usa uma instrução SQLCMD para criar um arquivo de saída chamado testoutput.txt, executa duas instruções Transact-SQL SELECT junto com um comando do sistema operacional (para imprimir o diretório atual). O arquivo resultante contém a saída de mensagem da DIR instrução e a saída de resultados das instruções Transact-SQL.
:out C:\testoutput.txt
SELECT @@VERSION As 'Server Version';
!!DIR
!!:GO
SELECT @@SERVERNAME AS 'Server Name';
GO