The Big Book of PowerShell Gotchas (Spanish)
  • Léame
  • Acerca de este libro
  • Formato a la derecha
  • ¿Dónde está el comando \?
  • PowerShell.exe no es PowerShell
  • Acumulando la salida en una función
  • ForEach vs ForEach vs ForEach
  • Finalización con Tab
  • -Contains y -Like son diferentes
  • No puede tener lo que no se tiene
  • -Filter y la diversidad de valores
  • No todo produce una salida
  • Una página HTML a la vez, por favor
  • Sangriento, Horrible, Puntuación
  • No Concatene Strings
  • $ no forma parte del nombre de la variable
  • Utilizar la canalización (pipeline), no una matriz
  • Backtick, Grave Accent, Escape
  • Comandos de la vieja escuela
  • Una multitud no es un individuo
  • La salida predeterminada de los comandos puede mentir
  • Propiedades vs. Valores
  • Variables Remotas
  • New-Object PSObject vs. PSCustomObject
  • Ejecutando algo como el "usuario actualmente conectado"
  • Comandos que necesitan un perfil de usuario pueden fallar cuando se ejecuta de forma remota
  • Escribiendo en SQL Server
  • Obtener tamaños de carpetas
Powered by GitBook
On this page

Escribiendo en SQL Server

Guardar datos en un servidor SQL - frente a Excel o algún otro formato - es muy fácil.

Suponga que tiene SQL Server Express instalado localmente. Ha creado una base de datos llamada mydb y una tabla llamada mytable. La tabla tiene dos columnas ColumnA y ColumnB, y ambas son campos de cadenas (varchar). El archivo de base de datos está ubicado en c:\myfiles\mydb.mdf. Esto es muy fácil de configurar en un GUI si descarga la versión de SQL Server Express "con herramientas". Es gratis!

$cola = "Data to go into ColumnA"
$colb = "Data to go into ColumnB"

$connection_string = "Server=.\SQLExpress;AttachDbFilename=C:\Myfiles\mydb.mdf;Database=mydb;Trusted_Connection=Yes;"
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connection_string
$connection.Open()
$command = New-Object System.Data.SqlClient.SqlCommand
$command.Connection = $connection

$sql = "INSERT INTO MYTABLE (ColumnA,ColumnB) VALUES('$cola','$colb')"
$command.CommandText = $sql
$command.ExecuteNonQuery()

$connection.close()

Puede insertar una gran cantidad de valores simplemente haciendo un bucle a través de las tres líneas que definen la sentencia SQL y ejecutarla:

$cola = @('Value1','Value2','Value3')
$colb = @('Stuff1','Stuff2','Stuff3')

$connection_string = "Server=.\SQLExpress;AttachDbFilename=C:\Myfiles\mydb.mdf;Database=mydb;Trusted_Connection=Yes;"
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connection_string
$connection.Open()
$command = New-Object System.Data.SqlClient.SqlCommand
$command.Connection = $connection

for ($i=0; $i -lt 3; $i++) {
  $sql = "INSERT INTO MYTABLE (ColumnA,ColumnB) VALUES('$($cola[$i])','$($colb[$i])')"
  $command.CommandText = $sql
  $command.ExecuteNonQuery()
}

$connection.close()

Es igual de fácil ejecutar consultas de actualización o eliminación. Las consultas de selección usan ExecuteReader() en lugar de ExecuteNonQuery() y devuelven un objeto SqlDataReader que se puede utilizar para leer datos de cada columna o avanzar a la siguiente fila en el conjunto de resultados.

PreviousComandos que necesitan un perfil de usuario pueden fallar cuando se ejecuta de forma remotaNextObtener tamaños de carpetas

Last updated 7 years ago