Contents

Install Invoke-SQLCMD (PowerShell Extensions for SQL Server)

Invoke-Sqlcmd

Invoke-Sqlcmd é um cmdlet do PowerShell usado para executar comandos ou scripts Transact-SQL (T-SQL) em instâncias do SQL Server. Este cmdlet pode ser usado para realizar várias tarefas, como consultar bancos de dados, criar tabelas ou executar procedimentos armazenados.

Para usar o Invoke-Sqlcmd, é necessário ter o módulo do PowerShell do SQL Server instalado no computador. Este módulo pode ser instalado na PowerShell Gallery ou a partir do media de instalação do SQL Server.

Erro

Invoke-sqlcmd : The term ‘Invoke-sqlcmd’ is not recognized as the name of a cmdlet, function, script file, or operable

Solução

Instale as extensões do PowerShell do Microsoft SQL Server 2016 Feature Pack para SQL Server.

Download MSI packages

Baixe os arquivos de instalação abaixo do site Microsoft® SQL Server® 2016 Service Pack 3 Feature Pack.

  • Microsoft® System CLR Types for Microsoft SQL Server® 2016 (SQLSysClrTypes.msi)
  • Microsoft® SQL Server® 2016 Shared Management Objects (SharedManagementObjects.msi)
  • Microsoft® Windows PowerShell Extensions for Microsoft SQL Server® 2016 (PowerShellTools.msi)

/pt/2022/07/05/install-invoke-sqlcmd/packages_selection.PNG

Instale-os seguindo a ordem abaixo

  1. SQLSysClrTypes.msi
  2. SharedManagementObjects.msi
  3. PowerShellTools.msi

Reboot ou restart de serviço não é necessário.

Video Recording

O vídeo abaixo demonstra o mesmo procedimento. Você pode assisti-lo se quiser ver mais detalhes.

Validação

Após a instalação, abra uma nova janela PowerShell e ela deve estar funcionando. Você pode tentar a sintaxe abaixo para consultar qualquer instância SQL.

Invoke-sqlcmd -ServerInstance “Server\Instance” -Query “SELECT GETDATE() AS TimeOfQuery” TimeOfQuery ———–

7/5/2022 6:51:57 PM

Agora que o utilitário 'Invoke-sqlcmd' está instalado podemos voltar ao que realmente importa.

Próximos passos

Uma vez instalado o módulo, você pode usar o Invoke-Sqlcmd abrindo um console do PowerShell e executando o cmdlet com os parâmetros apropriados. Por exemplo, para executar um script T-SQL em uma instância do SQL Server, você pode usar o seguinte comando:

Invoke-Sqlcmd -ServerInstance “NomeDoServidor” -Database “NomeDoBancoDeDados” -InputFile “C:\Scripts\Script.sql”

Isso irá conectar-se à instância do SQL Server especificada, usar o banco de dados especificado e executar os comandos T-SQL no arquivo de script especificado.

No geral, o Invoke-Sqlcmd é uma ferramenta útil para gerenciar bancos de dados do SQL Server e automatizar tarefas relacionadas a bancos de dados usando scripts do PowerShell.

Para qualquer dúvida ou sugestão por favor deixe um comentário.