Partilhar via


Editar scripts SQLCMD com o Editor de Consultas

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

  1. 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.

  2. No menu Consulta, selecione Modo SQLCMD.

    As instruções SQLCMD são executadas no contexto do editor de consultas.

  3. Na barra de ferramentas do Editor SQL , na lista Bancos de Dados Disponíveis , selecione AdventureWorks2025.

  4. Na janela do editor de consultas, escreva as seguintes instruções Transact-SQL e a !!DIR instrução SQLCMD:

    SELECT DISTINCT Type FROM Sales.SpecialOffer;
    GO
    !!DIR
    GO
    SELECT ProductCategoryID, Name FROM Production.ProductCategory;
    GO
    
  5. Pressione 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.

  6. 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 comando cmd.exe. O texto seguinte !! é passado como parâmetro para cmd.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 GO comando 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, mas PRINT '$(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|stdout 2
  • :out <filename>|stderr|stdout 2

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