Get SQL Insert Statement
Zuletzt geändert: 14.03.2026 05:56

Get-SqlInsertStatement #

ÜBERSICHT #

Erzeugt ein SQL-INSERT-Statement für eine beliebige Tabelle anhand einer Hashtable von Spaltenwerten.

SYNTAX #

Get-SqlInsertStatement [[-Tablename] <string>] [[-Fields] <hashtable>] [[-Conn] <__ComObject>]
    [<CommonParameters>]

BESCHREIBUNG #

Diese Funktion nimmt eine Zieltabelle, eine Hashtable mit Spaltennamen/Werten und eine aktive ADO-Verbindung entgegen. Sie erzeugt ein valides SQL-INSERT-Statement inklusive Datentyp-Validierung und Escaping, basierend auf der SQL-Tabellenstruktur.

Das Statement enthält zusätzlich ‘SELECT SCOPE_IDENTITY() AS NewId;’, um die erzeugte ID zurückzugeben. Unterstützt automatische Typkonvertierung für bit, int, decimal, date, und varchar/nvarchar-Spalten. SQL-Ausdrücke (z.B.. ‘dbo.’) werden nicht escaped.

PARAMETER #

-Tablename #

Type: string

Name der Zieltabelle, in die eingefügt werden soll (z.B.. ‘ADRESSE’).

-Fields #

Type: hashtable

Hashtable mit Spaltennamen und zugehörigen Werten. Der Schlüssel ist der SQL-Spaltenname, der Wert der einzufügende Inhalt.

-Conn #

Type: __ComObject

Aktive ADO-Verbindung (z.B.. über ‘[System.__ComObject]’).

AUSGABEN #

string, void

Ein vollständiges SQL-INSERT-Statement, das mit ‘Conn.Execute()’ ausgeführt werden kann. Im Fehlerfall (z.B. ungültige Verbindung oder fehlende Metadaten) wird $null zurückgegeben.

BEISPIELE #

$sql = Get-SqlInsertStatement -Tablename 'ADRESSE' -Fields $Fields -Conn $Conn
$Conn.Execute($sql)

HINWEISE #

  • Verwendet intern INFORMATION_SCHEMA.COLUMNS, um die Struktur der Tabelle zu analysieren.
  • Kürzt Zeichenketten automatisch, wenn sie die maximale Länge überschreiten.
  • Ergänzt automatisch: ‘SELECT SCOPE_IDENTITY() AS NewId’