Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Use o editor de consultas no SQL Server Management Studio (SSMS) para escrever e editar consultas como scripts SQLCMD. Podes usar scripts SQLCMD para processar comandos do sistema Windows e Transact-SQL instruções no mesmo script.
Ativar o modo SQLCMD
Para usar o editor de consultas para escrever ou editar scripts SQLCMD, deve ativar o modo de scripting SQLCMD. O modo SQLCMD não está ativado por defeito. Pode ativar o modo de scripting selecionando o ícone do Modo SQLCMD na barra de ferramentas, ou selecionando o Modo SQLCMD no menu de Consulta .
Observação
Quando ativas o modo SQLCMD, o IntelliSense e o depurador Transact-SQL ficam desligados no editor de consultas.
Os scripts SQLCMD no editor de consultas podem usar as mesmas funcionalidades que todos os scripts Transact-SQL utilizam. Estas funcionalidades incluem:
- 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 a funcionalidade de scripting do SQLCMD numa janela ativa do Editor de Consultas, use o seguinte procedimento.
Mudar uma janela do editor de consultas para o modo SQLCMD
No Explorador de Objetos, clique com o botão direito no servidor e depois selecione Nova Consulta para abrir uma nova janela do Editor de Consultas.
No menu Consulta, selecione Modo SQLCMD.
As instruções SQLCMD são executadas no contexto do editor de consultas.
Na barra de ferramentas do Editor SQL , na lista Bancos de Dados Disponíveis , selecione
AdventureWorks2025.Na janela do editor de consultas, escreva as seguintes instruções Transact-SQL e a
!!DIRinstrução SQLCMD: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 row(s) affected)<The directory information>(4 row(s) affected)
Importante
Quando executa o sqlcmd a partir da linha de comandos, permite interação total com o sistema operativo. Quando usar o editor de consultas no Modo SQLCMD, tenha cuidado para não executar instruções interativas. O editor de consultas não consegue responder a prompts do sistema operativo. Para mais informações sobre como executar o SQLCMD a partir da linha de comandos, consulte a utilidade 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 ativares o modo de scripting, podes escrever tanto comandos SQLCMD como 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.
Pode usar comentários e espaços em branco à frente dos comandos SQLCMD.
Os comandos SQLCMD dentro de caracteres de comentário não são executados.
Caracteres de comentário de uma linha são dois hífenes (
--) e devem aparecer no início de uma linha.Prefixe os comandos do sistema operativo com 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 seguinte!!é passado como parâmetro paracmd.exe, pelo que a linha de comando final executa-se como:"%SystemRoot%\system32\cmd.exe /c <text after !!>".Para fazer uma distinção clara entre comandos SQLCMD e Transact-SQL, prefixe todos os comandos SQLCMD com dois pontos (
:).O
GOcomando pode ser usado sem prefácio ou precedido por!!:.O editor de consultas suporta variáveis de ambiente e variáveis que defines como parte de um script SQLCMD, mas não suporta SQLCMD ou variáveis OSQL incorporadas. O SSMS processa as variáveis SQLCMD como sensíveis a maiúsculas e minúsculas. Por exemplo,
PRINT '$(COMPUTERNAME)'produz o resultado correto, masPRINT '$(ComputerName)'devolve um erro.
Atenção
O SSMS utiliza a SqlClient biblioteca .NET para execução em modo normal e SQLCMD. Quando executa a consulta a partir da linha de comandos, o sqlcmd usa o fornecedor OLE DB. Como podem aplicar-se opções padrão diferentes, pode ver comportamentos diferentes ao executar a mesma consulta no modo SQLCMD dentro do SSMS, em comparação com o modo SQLCMD na utilidade SQLCMD .
Sintaxe SQLCMD suportada
O editor de consultas 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]]1 :on error [ignore|exit]-
:error <filename>|stderr|stdout2 -
:out <filename>|stderr|stdout2
1 Para mais informações sobre o :connect comando, veja Comandos na utilidade sqlcmd.
2 O editor de consultas envia a saída para o separador Mensagens para stderr e stdout.
O editor de consultas não suporta comandos SQLCMD que não estejam incluídos na lista anterior. Quando executa um script que contém palavras-chave SQLCMD não suportadas, o editor de consultas ignora o comando. Para cada palavra-chave não suportada, o editor de consultas envia a seguinte mensagem para o destino:
Ignoring command <ignored_command>
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 podes passar parâmetros de linha de comandos, como variáveis. Além disso, como o editor de consultas não consegue responder a comandos do sistema operativo, deve ter cuidado para não executar instruções interativas.
Codificação de cores em scripts SQLCMD
Quando ativas o scripting SQLCMD, os scripts são codificados por cores. A codificação de cores para Transact-SQL palavras-chave mantém-se a mesma. Os comandos SQLCMD aparecem com um fundo sombreado.
Examples
O exemplo seguinte utiliza uma instrução SQLCMD para criar um ficheiro de saída chamado testoutput.txt. Executa duas instruções Transact-SQL SELECT e um comando do sistema operativo que imprime o diretório atual. O ficheiro resultante contém a mensagem saída da DIR instrução e os resultados gerados pelas instruções Transact-SQL.
:out C:\testoutput.txt
SELECT @@VERSION As 'Server Version';
!!DIR
!!:GO
SELECT @@SERVERNAME AS 'Server Name';
GO