kpt.Unbrauchbar
Neuer Benutzer
- Beiträge
- 1
Hallo ich bin neu hier in Forum und suche bisschen Weisheit.
Ich habe einen trivialen Merge:
MERGE INTO dbo.sperradressen WITH (HOLDLOCK) AS target
USING (SELECT dbo.f012.*, ISNULL(land.iso2,0) iso2land FROM dbo.f012
INNER JOIN f010 ON f010.firma = f012.firma AND f010.sa = f012.sa AND f010.konto = f012.konto
LEFT JOIN dbo.land on dbo.f012.firma = land.firma AND dbo.land.unr = 0 )
AS source
ON target.ref_table ='f012' AND target.ref_key = source.key_1
WHEN MATCHED AND (target.name1 != source.nachname OR
target.name2 != source.vorname OR
target.name3 != source.adr_zusatz OR
target.strasse != source.str OR
target.plz != f010.plz OR
target.stadt != f010.ort OR
target.land != source.iso2land)
THEN
UPDATE SET
target.name1 = source.nachname,
target.name2 = source.vorname,
target.name3 = source.adr_zusatz,
target.strasse = f010.str,
target.plz = f010.plz,
target.stadt = f010.ort,
target.land = source.iso2land,
target.eusanktstatus = 0,
target.hhupd = '${hhupd}',
target.eusanktinfo = '',
target.info = '',
target.firstname = '',
target.middlename = '',
target.lastname = '',
target.wholename = '',
target.street = '',
target.zipcode = '',
target.city = '',
target.country = ''
WHEN NOT MATCHED BY TARGET THEN
INSERT (target.name1, target.name2, target.name3,target.strasse,target.plz,target.stadt, target.land, target.hhupd)
VALUES (source.nachname, source.vorname, source.adr_zusatz,f010.str,f010.plz,f010.ort,source.iso2land, '${hhupd}')
WHEN NOT MATCHED BY SOURCE THEN
DELETE;
dieser führt an den stellen wo ich f010 eingetragen habe zu der Fehlermeldung :
Die in der MERGE-Anweisung verwendete Einfügespaltenliste darf keine mehrteiligen Bezeichner enthalten. Verwenden Sie stattdessen einteilige Bezeichner.
Im Grunde wollte ich mit dem Updatepart folgendem alten Updatebefehl ersetzen:
UPDATE sperradressen
SET sperradressen.name1 = f012.nachname,
sperradressen.name2 = f012.vorname,
sperradressen.name3 = f012.adr_zusatz,
sperradressen.strasse = f010.str,
sperradressen.plz = f010.plz,
sperradressen.stadt = f010.ort,
sperradressen.land = land.iso2,
sperradressen.eusanktstatus = 0,
sperradressen.hhupd = '${hhupd}',
sperradressen.eusanktinfo = '',
sperradressen.info = '',
sperradressen.firstname = '',
sperradressen.middlename = '',
sperradressen.lastname = '',
sperradressen.wholename = '',
sperradressen.street = '',
sperradressen.zipcode = '',
sperradressen.city = '',
sperradressen.country = ''
FROM f012
INNER JOIN f010 ON ( f010.firma = f012.firma AND f010.sa = f012.sa AND f010.konto = f012.konto )
INNER JOIN land ON ( f010.firma = land.firma AND f010.land = land.nr AND land.unr = 0 )
WHERE f012.firma = ${TBR}
AND f012.anr = 00000000
AND f012.key_1 = sperradressen.key_1
AND (sperradressen.name1 != f012.nachname
OR sperradressen.name2 != f012.vorname
OR sperradressen.name3 != f012.adr_zusatz
OR sperradressen.strasse != f010.str
OR sperradressen.plz != f010.plz
OR sperradressen.stadt != f010.ort
OR sperradressen.land != land.iso2);
Ich finde allerdings den Fehler nicht. Egal ob ich den left Join auf Inner Join drehe, oder nicht.
Ich hoffe ihr könnt ihr mir weiterhelfen.
Vielen dank im voraus
Ich habe einen trivialen Merge:
MERGE INTO dbo.sperradressen WITH (HOLDLOCK) AS target
USING (SELECT dbo.f012.*, ISNULL(land.iso2,0) iso2land FROM dbo.f012
INNER JOIN f010 ON f010.firma = f012.firma AND f010.sa = f012.sa AND f010.konto = f012.konto
LEFT JOIN dbo.land on dbo.f012.firma = land.firma AND dbo.land.unr = 0 )
AS source
ON target.ref_table ='f012' AND target.ref_key = source.key_1
WHEN MATCHED AND (target.name1 != source.nachname OR
target.name2 != source.vorname OR
target.name3 != source.adr_zusatz OR
target.strasse != source.str OR
target.plz != f010.plz OR
target.stadt != f010.ort OR
target.land != source.iso2land)
THEN
UPDATE SET
target.name1 = source.nachname,
target.name2 = source.vorname,
target.name3 = source.adr_zusatz,
target.strasse = f010.str,
target.plz = f010.plz,
target.stadt = f010.ort,
target.land = source.iso2land,
target.eusanktstatus = 0,
target.hhupd = '${hhupd}',
target.eusanktinfo = '',
target.info = '',
target.firstname = '',
target.middlename = '',
target.lastname = '',
target.wholename = '',
target.street = '',
target.zipcode = '',
target.city = '',
target.country = ''
WHEN NOT MATCHED BY TARGET THEN
INSERT (target.name1, target.name2, target.name3,target.strasse,target.plz,target.stadt, target.land, target.hhupd)
VALUES (source.nachname, source.vorname, source.adr_zusatz,f010.str,f010.plz,f010.ort,source.iso2land, '${hhupd}')
WHEN NOT MATCHED BY SOURCE THEN
DELETE;
dieser führt an den stellen wo ich f010 eingetragen habe zu der Fehlermeldung :
Die in der MERGE-Anweisung verwendete Einfügespaltenliste darf keine mehrteiligen Bezeichner enthalten. Verwenden Sie stattdessen einteilige Bezeichner.
Im Grunde wollte ich mit dem Updatepart folgendem alten Updatebefehl ersetzen:
UPDATE sperradressen
SET sperradressen.name1 = f012.nachname,
sperradressen.name2 = f012.vorname,
sperradressen.name3 = f012.adr_zusatz,
sperradressen.strasse = f010.str,
sperradressen.plz = f010.plz,
sperradressen.stadt = f010.ort,
sperradressen.land = land.iso2,
sperradressen.eusanktstatus = 0,
sperradressen.hhupd = '${hhupd}',
sperradressen.eusanktinfo = '',
sperradressen.info = '',
sperradressen.firstname = '',
sperradressen.middlename = '',
sperradressen.lastname = '',
sperradressen.wholename = '',
sperradressen.street = '',
sperradressen.zipcode = '',
sperradressen.city = '',
sperradressen.country = ''
FROM f012
INNER JOIN f010 ON ( f010.firma = f012.firma AND f010.sa = f012.sa AND f010.konto = f012.konto )
INNER JOIN land ON ( f010.firma = land.firma AND f010.land = land.nr AND land.unr = 0 )
WHERE f012.firma = ${TBR}
AND f012.anr = 00000000
AND f012.key_1 = sperradressen.key_1
AND (sperradressen.name1 != f012.nachname
OR sperradressen.name2 != f012.vorname
OR sperradressen.name3 != f012.adr_zusatz
OR sperradressen.strasse != f010.str
OR sperradressen.plz != f010.plz
OR sperradressen.stadt != f010.ort
OR sperradressen.land != land.iso2);
Ich finde allerdings den Fehler nicht. Egal ob ich den left Join auf Inner Join drehe, oder nicht.
Ich hoffe ihr könnt ihr mir weiterhelfen.
Vielen dank im voraus