MS SQL 2008 - Insert mit Duplikat-Kontrolle
Hallo Zusammen,
ich muss von einer Sicht/View in eine Tabelle innerhalb einer anderen Datenbank eintragen.
Mein Problem ist, dass die Primärschlüssel der Tabelle in der View mehrfach vorkommen können.
Bspw. ist die fortlaufende Nummer in der View der Primärschlüssel der Tabelle. Diese kommt in der View 2x vor, allerdings fällt das erst beim Übertragen in die Tabelle auf.
Der Plan ist, per SQL-Befehl zu prüfen, ob der Schlüssel bereits vorhanden ist. Falls Ja, verwirf die Zeile und prüfe die nächste.
Mein SQL-Skript sieht so aus, allerdings funktioniert es nicht wirklich:
Leider ist mein SQL etwas eingerostet, daher komme ich momentan nicht weiter.
Grüße,
Tiberius
ich muss von einer Sicht/View in eine Tabelle innerhalb einer anderen Datenbank eintragen.
Mein Problem ist, dass die Primärschlüssel der Tabelle in der View mehrfach vorkommen können.
Bspw. ist die fortlaufende Nummer in der View der Primärschlüssel der Tabelle. Diese kommt in der View 2x vor, allerdings fällt das erst beim Übertragen in die Tabelle auf.
Der Plan ist, per SQL-Befehl zu prüfen, ob der Schlüssel bereits vorhanden ist. Falls Ja, verwirf die Zeile und prüfe die nächste.
Mein SQL-Skript sieht so aus, allerdings funktioniert es nicht wirklich:
INSERT INTO [SmartFix_Matching_DB].[smartfix].[SFI_VENDOR]
(
[VE_VENDOR_NO]
,[VE_NAME]
,[VE_STREET]
,[VE_ZIPCODE]
,[VE_CITY]
,[VE_COUNTRY]
,[VE_TELEFONE_NO]
,[VE_FAX_NO]
,[VE_EMAIL]
,[VE_BANK]
,[VE_SWIFT_BIC]
,[VE_IBAN]
)
SELECT
[VE_VENDOR_NO]
,[VE_NAME]
,[VE_STREET]
,[VE_ZIPCODE]
,[VE_CITY]
,[VE_COUNTRY]
,[VE_TELEFONE_NO]
,[VE_FAX_NO]
,[VE_EMAIL]
,[VE_BANK]
,[VE_SWIFT_BIC]
,[VE_IBAN]
FROM testData.dbo.SFI_VENDOR2
WHERE [VE_VENDOR_NO] not in (Select [VE_VENDOR_NO] from [SmartFix_Matching_DB].[smartfix].[SFI_VENDOR])
GO
Leider ist mein SQL etwas eingerostet, daher komme ich momentan nicht weiter.
Grüße,
Tiberius
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 291803
Url: https://administrator.de/contentid/291803
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
4 Kommentare
Neuester Kommentar
Ich nehme an, "VE_VENDOR_NO" ist dann in der Zieltabelle der Primärschlüssel? Oder wie?
Du wirst in der Zieltabelle den Primärschlüssel ändern müssen, wenn die einzufügenden Daten darüber nicht eindeutig sind. Andern Falls würde es darauf hinaus laufen, dass Du aus der Quelle (die View) nicht alle Daten übernehmen kannst.
Oder Du musst im Ziel die Bankdaten in eine zweite Tabelle auslagern und diese mit der Adress-Tabelle verknüpfen.
Du wirst in der Zieltabelle den Primärschlüssel ändern müssen, wenn die einzufügenden Daten darüber nicht eindeutig sind. Andern Falls würde es darauf hinaus laufen, dass Du aus der Quelle (die View) nicht alle Daten übernehmen kannst.
Oder Du musst im Ziel die Bankdaten in eine zweite Tabelle auslagern und diese mit der Adress-Tabelle verknüpfen.