itnirvana
Goto Top

SQL 2019 Collation hat es nicht geändert

Hallo,

ich habe einen Server wo die Collation nicht stimmt:
Ich führte dies aus, und es kam auch keine Fehlermeldung:

Setup.exe /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLCOLLATION=Latin1_General_CI_AS  /SQLSYSADMINACCOUNTS=devops

Woran kann es liegen ?
Collation ist immer noch die alte:

SQL_Latin1_General_CP1_CI_AS

Gruss
Paul

Content-Key: 53659784799

Url: https://administrator.de/contentid/53659784799

Printed on: April 27, 2024 at 12:04 o'clock

Member: ukulele-7
ukulele-7 Aug 23, 2023 at 10:31:29 (UTC)
Goto Top
  • Hast du auch ein Passwort für den Account angegeben?
  • Eventuell geht es nur mit dem SA.
  • Eventuell ist der Instanzname falsch.
  • Eventuell muss die Instanz noch neu gestartet werden.
https://www.mssqltips.com/sqlservertip/3519/changing-sql-server-collatio ...
Member: itnirvana
itnirvana Aug 23, 2023 at 10:40:03 (UTC)
Goto Top
Hallo,

Hast du auch ein Passwort für den Account angegeben?
- Ja ich hatte auch mit :Passwort gleiches ausführen können.

Eventuell geht es nur mit dem SA.
- Der SA wollte leider nicht.

Eventuell ist der Instanzname falsch.
- Instanzname stimmt. Den sieht man bei den Diensten.

Eventuell muss die Instanz noch neu gestartet werden.
- Wurde gemacht.

Eben es gab keine Fehler.

Gruss
Paul
Member: itnirvana
itnirvana Aug 23, 2023 updated at 12:05:35 (UTC)
Goto Top
Es gibt eben noch diese Anleitung

https://www.der-windows-papst.de/wp-content/uploads/2020/01/SQL-Server-C ...

Beispiel:

Setup /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER 
/SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS /SAPWD=KENNWORT

Ich frage mich eben wozu der SAPWD steht. Vermutlich der SA , ich trug hier unseren SA ein. Womit ich das ersetze . Bei uns heisst der SA anderst. Mit dem probierte ich es auch.


Gruss
Paul
Member: papapishu
papapishu Aug 23, 2023 at 12:40:45 (UTC)
Goto Top
Hi Paul,

Wenn es um die Instanz geht, hast du schonmal im SSMS geschaut ob du einfach per Rechtsklick die Collation ändern kannst?

Mit deinem Befehl sollte die Instanz für neue Datenbanken die Collation nutzen, nicht für bestehende:
https://learn.microsoft.com/en-us/sql/relational-databases/databases/reb ...
--
[ /SQLCOLLATION=CollationName ]
Specifies a new server-level collation. This parameter is optional. When not specified, the current collation of the server is used.

Important: Changing the server-level collation doesn't change the collation of existing user databases. All newly created user databases will use the new collation by default.

For more information, see Set or Change the Server Collation.
--
Ich nehme an was du suchst ist eine Änderung der Collation enthaltenen Datenbank?
Falls ja, schau hier das ist das per T-SQL beschrieben: https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-database-tr ...

ALTER DATABASE testDB
COLLATE French_CI_AI ;

PS: Wenn ich den T-SQL Befehl hier einfüge (auch im Code) kann ich nicht posten, denke mal da hat wer einen filter für SQL Injections eingebaut.


Grüße!
Member: itnirvana
itnirvana Aug 23, 2023 at 13:07:21 (UTC)
Goto Top
Hallo,

per REchtsklick geht es eben nicht.

collation

Laut Windows Papst wie ich verstehe, sollte es aber bestehende ändern.
Hier https://learn.microsoft.com/de-de/sql/relational-databases/databases/reb ...

Da steht auch was /SAPWD bedeutet. Hatte hier das SA Passwort angegeben, und Command lief fehlerfrei durch, Aber Collation zeigt es immer noch gleich an.

collation

JA vielleicht mal den unteren Link , den Du gepostet hast lesen. Im moment ist mir nicht klar, warum es immer das alte anzeigt.

Gruss
Paul
Member: itnirvana
itnirvana Aug 23, 2023 at 13:44:19 (UTC)
Goto Top
jetzt hat es den Befehl akzeptiert. Problem ist, das es nach Reboot alle DBs abgeräumt hat.

Gruss
Paul
Member: MadMax
MadMax Aug 23, 2023 at 18:42:30 (UTC)
Goto Top
Hallo Paul,

das ist schon richtig so, daß die Datenbanken abgeräumt werden, Du erstellst ja die Systemdatenbanken neu.

In der SQL-Server-Hilfe steht beschrieben, was man alles tun muß, um die Sortierung zu ändern. Ich zitiere:
Das Ändern der Instanzsortierung umfasst die folgenden Schritte:
  • Sicherstellen, dass Ihnen alle Informationen oder Skripts zur Verfügung stehen, die zum erneuten Erstellen der Benutzerdatenbanken und aller darin enthaltenen Objekte erforderlich sind.
  • Exportieren aller Daten mithilfe eines Tools wie z. B. dem bcp Utility. Weitere Informationen finden Sie unter Massenimport und -export von Daten (SQL Server).
  • Löschen aller Benutzerdatenbanken.
  • Erstellen Sie die master Datenbank neu, indem Sie die neue Sortierung in der SQLCOLLATION -Eigenschaft des setup Befehls angeben. Beispiel:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName
/SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ]
/SQLCOLLATION=CollationName  
Weitere Informationen finden Sie unter Neuerstellen von Systemdatenbanken.

  • Erstellen aller Datenbanken und aller darin enthaltenen Objekte.
  • Importieren aller Daten.

Das exportieren und dann wieder importieren per bcp finde ich recht umständlich, deswegen würde ich vermutlich die Datenbanken sichern und nach der Neuerstellung der Instanz wieder zurückspielen. Dann würde ich mir für die Datenbanken, Objekte und Spalten ein Skript anhand der Systemtabellen erstellen, das mir die Sortierung ändert.

Habe ich bis jetzt noch nicht gemacht, ich weiß also nicht, ob das mit dem Skript erfolgreich wäre, aber das würde ich versuchen.

Gruß, Mad Max