Datenbanksortierung prüfen

  • dash
  • Autor
  • Besucher
  • Besucher
10 Jahre 10 Monate her - 10 Jahre 10 Monate her #1090 von dash
Datenbanksortierung prüfen wurde erstellt von dash
Es kann vorkommen, dass die Datenbanksortierungen unterschiedlich sind.
Unter anderem kann es dann in Orgaosft zu Fehlermeldungen kommen, wie z.B.
"Die Auflistung 'ProcedureParameters' kann nicht erstellt werden, da die SQL-Abfrage fehlgeschlagen ist. Details finden Sie in der inneren Ausnahme...Der Konflikt der Sortierung für die Spalte x in der Select-Anweisung kann nicht aufgelöst werden."

Mit diesen Befehlen kann die Sortierung der DBs kontrolliert werden. Es muss immer die selbe Sortierung rauskommen.
SELECT databasepropertyex('<DB-Name>', 'Collation')
SELECT databasepropertyex('tempdb', 'Collation')
SELECT databasepropertyex('master', 'Collation')

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
10 Jahre 10 Monate her - 10 Jahre 10 Monate her #410 von arnd
arnd antwortete auf Re: Datenbanksortierung prüfen
Hallo!

So kann man die Sortierung der Systemdatenbanken ändern:
Neuerstellen von Systemdatenbanken

Gibt es eine einfache Möglichkeit, die Sortierung der Orgasoft Datenbanken zu ändern?

Grüße
Arnd.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • mfl
  • Besucher
  • Besucher
10 Jahre 10 Monate her - 6 Jahre 4 Monate her #413 von mfl
mfl antwortete auf Re: Datenbanksortierung prüfen
Hallo Arnd,
eine einfache Möglichkeit gibt es nicht, das liegt aber an der Sache an sich. Alle Texte der Datenbank müssen konvertiert werden und kann daher auch einige Zeit in Anspruch nehmen.

Wie in dem Link schon erwähnt, erstmal alle Datenbanken sichern !

1. wie im Link beschrieben die Collation der master-Datenbank und des Servers ändern
2. Orgasoft-Datenbanken wieder einhängen
3. die Sortierung der Orgasoft-Datenbanken ändern (ändert nicht die Sortierung der existierenden Spalten)
4. DBUpdate starten und warten bis die UPDs erzeugt wurden
5. Mit dem Management-Studio die Sortierung der UPDs kontrollieren
6. Im DBUpdate F3 drücken, die Haken bei "Sortierung updaten" setzen und Änderung übernehmen (zum Aktivieren des Flags ALT+S drücken)
7. DBUpdate starten

Ob alle Objekte die richtige Sortierung haben, kann man dann mit

SELECT sysObjects.name, sysObjects.type, sysColumns.*
FROM sysObjects INNER JOIN sysColumns ON sysObjects.id=sysColumns.id
WHERE sysObjects.type IN ('FN','IF','P','TF','U','V') AND sysColumns.collation<>'Latin1_General_CI_AS'
ORDER BY sysObjects.type, sysObjects.name

kontrollieren, es dürfen keine Datensätze zurück geleifert werden. Natürlich 'Latin1_General_CI_AS' durch die gewünschte Sortierung ersetzen.
Letzte Änderung: 6 Jahre 4 Monate her von toja.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
10 Jahre 9 Monate her - 10 Jahre 9 Monate her #415 von arnd
arnd antwortete auf Re: Datenbanksortierung prüfen
Hallo mfl,

kann ich verhindern, dass beim DBUpdate die ganzen User- Tabellen, Sichten und Prozeduren gelöscht werden? Die Einstellungen in der Mandanten-ini scheinen nicht berücksichtigt zu werden.

Die diversen Überbleibsel in der sysObjects mussen einzeln gelöscht werden?

Grüße
Arnd.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • mfl
  • Besucher
  • Besucher
10 Jahre 9 Monate her - 10 Jahre 9 Monate her #430 von mfl
mfl antwortete auf Re: Datenbanksortierung prüfen
Hallo Arnd,
das User- Tabellen, Sichten und Prozeduren gelöscht werden, kan ich mir nicht vorstellen. Passiert das nur beim Update der Sortierung oder immer ? Das Problem sollte aber mit den Support geklärt werden.

Die Reste in sysObjects dürfen nicht gelöscht werden, es ist nur eine Hilfe um falsche Sortierungen zu finden.
In dem Ergebnis findet man den Objektnamen (Tabellenspalte, Sicht, etc.) und kann dann über das Managementstudio die Sortierung korrgieren.
Wenn es viele Reste gibt, kann man auch versuchen die Ursache zu finden. Für die Suche ist der Kontakt mit dem Support der richtige Weg, da Zugang zur Datenbank nötig ist.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
8 Jahre 5 Monate her - 7 Jahre 10 Monate her #1492 von asu
asu antwortete auf Datenbanksortierung prüfen
Hallo zusammen,

ich hatte gerade das Problem, das bei einer datenbankübergreifenden View die Collation gestört hat, weil die Archiv-DB eine vom Server abweichende Sortierung hatte. Die Datenbank Collation umzustellen ist ja einfach, aber eben nur die halbe Miete, weil alle "Textfelder" ( vereinfacht ausgedrückt ) ihr vorherige Sortierung ja behalten. Diese kann man zwar auch ändern, was manuell, Feld für Feld, aber ziemlich viel Arbeit ist. Mit Hilfe einer modifizierten View ( siehe oben ) konnte ich alle Felder ermitteln, die von der Datenbank-Sortierung abweichen und habe mir damit einen ALTER TABLE ALTER COLUMN String zusammengestellt dessen Ergebnis man einfach in einer neuen Abfrage ausführen kann mit Copy&Paste. Das einzige, was einem jetzt noch geschehen kann, das auf ein zu änderndes Feld ein Index liegt, den müsste man den derzeit noch manuell löschen und danach wieder anlegen. Die Create Syntax kann man sich ja vorab sichern.

Gruß
asu
SELECT 'Alter Table '+ sysObjects.name+' Alter Column '+ sysColumns.name + ' ' +sys.types.name+'('+
CASE when syscolumns.length<0
THEN 'MAX'
ELSE
convert(varchar(8),syscolumns.length)
END
+') '+  ' COLLATE SQL_Latin1_General_CP1_CI_AS;'
 FROM sysObjects INNER JOIN sysColumns ON sysObjects.id=sysColumns.id
 Inner Join Sys.types on syscolumns.xtype= sys.types.system_type_id
 WHERE sysObjects.type IN ('U') AND sysColumns.collation<>'SQL_Latin1_General_CP1_CI_AS'
 and sys.types.name <>'sysname'
 ORDER BY sysObjects.type, sysObjects.name

"Wer Rechtschreibfehler findet, darf sie behalten."
Letzte Änderung: 7 Jahre 10 Monate her von asu.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.