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’