Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
PDW (Analytics Platform System)
Ao usar o Editor de Consultas do Mecanismo de Banco de Dados no SQL Server Management Studio, você poderá 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 gravar ou editar scripts SQLCMD, habilite 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 no ícone Modo SQLCMD na barra de ferramentas ou selecionando Modo SQLCMD no menu Consulta.
Observação
A habilitação do modo SQLCMD desativa o IntelliSense e o depurador Transact-SQL no Editor de Consultas do Mecanismo de Banco de Dados.
No Editor de Consultas, os scripts SQLCMD podem usar os mesmos recursos disponíveis para todos os scripts Transact-SQL. Entre esses recursos estão:
- Codificação de cores
- Execução de scripts
- Controle do código-fonte
- Análise de scripts
- Plano de exibição
Habilitar o script de SQLCMD no Editor de Consultas
Para ativar o script SQLCMD em 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 Editor do SQL , na lista Bancos de Dados Disponíveis , selecione
AdventureWorks2025.Na janela do Editor de Consultas, digite as instruções Transact-SQL a seguir 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 linha(s) afetada(s))
- <As informações do diretório>
- (4 linha(s) afetada(s))
Importante
Quando executado na 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, tenha 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 siga o tutorial do SQLCMD.
Habilitar o script SQLCMD por padrão
Para ativar o script de SQLCMD por padrão, no menu Ferramentas, selecione Opções, expanda Execução de Consulta e, no SQL Server, clique na 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. As seguintes regras se aplicam:
Comandos SQLCMD devem ser a primeira instrução em uma linha.
Somente um comando SQLCMD é permitido em cada linha.
Comandos SQLCMD podem ser precedidos por comentários ou espaço em branco.
Comandos SQLCMD em caracteres de comentário não são executados.
Caracteres de comentário de linha única são dois hífens (
--)) e devem aparecer no início de uma linha.Comandos de sistema operacional devem ser precedidos por dois pontos de exclamação (
!!). O comando com dois pontos de exclamação faz com que a instrução que vem depois desses pontos seja executada usando o processador de comandocmd.exe. Como o texto depois de!!é passado como um parâmetro paracmd.exe, 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 comandos Transact-SQL, todos os comandos SQLCMD precisam ser precedidos por dois pontos (
:).O
GOcomando pode ser usado sem prefácio ou precedido por!!:O Editor de Consultas do Mecanismo de Banco de Dados dá suporte a variáveis de ambiente e variáveis definidas como parte de um script SQLCMD, mas não dá suporte para variáveis SQLCMD internas ou osql. O processamento de SQLCMD pelo SQL Server Management Studio diferencia maiúsculas de minúsculas em variáveis. Por exemplo, PRINT '$ (COMPUTERNAME)' produz o resultado correto, mas PRINT '$(ComputerName)' retorna um erro.
Cuidado
O SQL Server Management Studio usa o Microsoft .NET Framework SqlClient para execução no modo regular e SQLCMD. Quando executado na 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 oferece suporte às seguintes palavras-chave do 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.
O Editor de Consultas não oferece suporte aos comandos SQLCMD não listados acima. Quando um script que contém palavras-chave SQLCMD sem suporte é executado, o Editor de Consultas envia uma mensagem "Ignorando comando <comando ignorado>" para o destino de cada palavra-chave sem suporte. O script é executado com êxito, mas os comandos sem suporte são ignorados.
Cuidado
Como você não inicia o SQLCMD na linha de comando, há algumas limitações ao executar o Editor de Consultas no modo SQLCMD. Você não pode 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 por cores em scripts SQLCMD
Com o script SQLCMD habilitado, os scripts são codificados por cores. A codificação por cores para palavras-chave do Transact-SQL permanece a mesma. 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 denominado testoutput.txt, executa duas instruções Transact-SQL SELECT juntamente com um comando de sistema operacional (para imprimir o diretório atual). O arquivo resultante contém a saída de mensagem da instrução DIR e os resultados produzidos pelas instruções Transact-SQL.
:out C:\testoutput.txt
SELECT @@VERSION As 'Server Version';
!!DIR
!!:GO
SELECT @@SERVERNAME AS 'Server Name';
GO