Saltar al contenido

¿Cómo ejecutar sqlcmd desde powershell?

Nuestros programadores estrellas han agotado sus provisiones de café, en su búsqueda diariamente por la respuesta, hasta que Lía halló el hallazgo en GitHub y hoy la compartimos con nosotros.

Solución:

Para llamar a un ejecutable de Win32, desea utilizar el operador de llamada & como esto:

& sqlcmd -S "(local)instance1" -U a -P a -i "c:tempsql.sql"

También puede dejar de usar el ‘SQLCMD.EXE’ externo y usar el cmdlet Invoke-Sqlcmd en su lugar:

Invoke-Sqlcmd es un cmdlet de SQL Server que ejecuta scripts que contienen instrucciones de los lenguajes (Transact-SQL y XQuery) y comandos que son compatibles con la utilidad sqlcmd.

Simplemente abra la utilidad ‘sqlps’ y ejecute

Invoke-Sqlcmd -InputFile "C:tempsql.sql"

Consulte Ejecución de SQL Server PowerShell

También puede cargar los complementos de SQL Server manualmente en PowerShell antes de usar ‘Invoke-Sqlcmd’;
para MS SQL Server 2012 puede hacerlo ejecutando
Import-Module SqlPs

Así es como construyo algunos comandos externos en mis scripts

$scriptblock = fullpathsqlcmd -S `"(local)instance1`" <# comment option -S #>`
                                -U a `
                                -P a `
                                -i `"c:tempsql.sql`" 
Invoke-Command -ScriptBlock $scriptBlock

Luego puede usar la variable $args dentro de él e incluso iniciarlo de forma remota.

$scriptblock = fullpathsqlcmd -S `"(local)instance1`" <# comment option -S #>`
                                -U a `
                                -P a `
                                -i `"$($args[0])`" 
Invoke-Command -ScriptBlock $scriptBlock -argumentList "c:tempsql.sql" -computer "remote1"

Observación:

Esto permite comentar cada parámetro.

Tenga cuidado de no olvidar un “`” y ningún espacio después de ellos donde están al final de la línea.

valoraciones y comentarios

Recuerda que puedes comunicar esta reseña si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *