hdreise

Datenimport Powershell in MsSql Datenbank aus AD

Guten Morge,

ich hab ein kleines Problem wo ich leider nicht so weiterkomme. Ich hab mit SQL Datenbanken sehr wenig Erfahrung, und ich hoffe ihr könnt mir weiterhelfen.

Ich hab eine MSSQL Datenbank vorliegen, in der Tabelle Import_Data sind schon ca. 100 Datensätze vorhanden.

Der Import funktioniert, aber ich hab dann die Personalnummer, Vornamen und Nachnamen mehrmals in der Datenbank, das ist natürlich nicht so gewollt. Könnt ihr mir einen Tipp geben wie ich vorgehen muss, damit nur neue Nutzer hinzugefügt werden?! Die Personalnummer ist einmalig.


foreach($data in $datas)

{
$nummer=[decimal]$data.EmployeeNumber 
$name=$data.Surname
$vorname=$data.GivenName

$insertquery="  
INSERT INTO [dbo].[IMPORT_DATA]

           ([Personalnummer]
           ,[Nachname]
           ,[Vorname])

     VALUES

           ('$nummer'  
           ,'$name'  
           ,'$vorname')  
GO
"  
Invoke-SQLcmd -ServerInstance 'TEST\SQLEXPRESS,1433' -query $insertquery -U sa -P testdb -Database smart   
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 483440

Url: https://administrator.de/forum/datenimport-powershell-in-mssql-datenbank-aus-ad-483440.html

Ausgedruckt am: 19.05.2025 um 04:05 Uhr

ukulele-7
Lösung ukulele-7 09.08.2019 um 08:47:23 Uhr
Goto Top
Unter MSSQL bietet sich da der MERGE Befehl an. Die Syntax ist anders und wirkt erstmal umfangreich aber eigentlich ist es dafür gemacht. Wenn du eh nur einen Datensatz pro INSERT einfügst gingen auch diverse andere Möglichkeiten.

Du musst dir allerdings über SQL Injection klar sein, je nachdem was da in deinen Variablen steht.
SlainteMhath
Lösung SlainteMhath 09.08.2019 um 10:00:46 Uhr
Goto Top
Moin,

...MERGE...
Das, und dann hilft es natürlich auch das Feld Personalnummer als PrimaryKey zu definieren.

lg,
Slainte