AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MS SQL2000 - Kollation ändern?
Thema durchsuchen
Ansicht
Themen-Optionen

MS SQL2000 - Kollation ändern?

Ein Thema von Sharky · begonnen am 18. Dez 2003 · letzter Beitrag vom 16. Nov 2004
Antwort Antwort
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#1

MS SQL2000 - Kollation ändern?

  Alt 18. Dez 2003, 14:56
Hai,

ich wollte heute die Daten von meinem SQL-7 Server auf den SQL-2000 übertragen.
Dazu habe ich eine Sicherung der Datenbank gemacht und diese dann im SQL-2000 wiederhergestellt.

So weit so gut. Wenn ich nun aber einen Datensatz anlegen möchte in dem ein Feld vom Typ Text ist bekomme ich immer die Fehlermeldung das eine Codepageübersetzung von 1252 in 850 fehlgeschlagen ist.

Nun gut. Also habe ich mit
ALTER DATABASE db_name COLLATE Latin1_General_CI_AS die Standardsortierung für diese Datenbank geändert.

Leider behält der böse Server aber in den Tabelle immer noch die alte Codepage (SQL_Latin1_General_CP850_CI_AS).

Jetzt könnte ich natürlich von Hand alle Text-Datenfelder ändern.
Aber bei weit über 100 Tabelle ist das echt hart.

Kennt jemand eine andere Lösung für mein Problem?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: MS SQL2000 - Kollation ändern?

  Alt 18. Dez 2003, 15:10
War Unsinn - siehe weiter unten...
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: MS SQL2000 - Kollation ändern?

  Alt 18. Dez 2003, 15:19
Hai Leuselator,

ich sehe eben mit grauen das auch die ganzen VCHAR davon betroffen sind.
Es muss doch möglich sein eine Datenbank von SQL 7 auf 2000 zu bekommen

Sonst stirbt der neue SQL ganz schnell wieder
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: MS SQL2000 - Kollation ändern?

  Alt 18. Dez 2003, 15:36
Ich glaube ich habe es.

Ich habe jetzt die Datenbank nicht "Wiederhergestellt" sondern über die Importfunktion vom alten Server geholt. In diesem Fall scheint er wohl die Standardsortierung der vorhandenen Datenbank zu nehmen. Morgenfrüh muss ich das dann noch alles testen.

Aber intressieren würde mich trotzdem wie es geht.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#5

Re: MS SQL2000 - Kollation ändern?

  Alt 18. Dez 2003, 15:36
Das aber
SQL-Code:
select 'alter table '+so.name+' alter column '+sc.name+' '+st.name+' ('+convert(varchar,sc.length)+') COLLATE Latin1_General_CI_AS ;'
      from Sysobjects so
inner join syscolumns sc
        on sc.id = so.id
inner join systypes st
        on st.xtype = sc.xtype
     where so.type = 'U'
       and sc.collation = 'Alter_Collation_Typ'
Das im Query-Analyser abschicken, dann Ergebnis (alles)markieren und in neue Query einfügen - abschicken - fertig

Ändert alles in der aktiven (Analyser) DB, was die alte Collation hat auf die neue

Wär doch gelacht
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: MS SQL2000 - Kollation ändern?

  Alt 19. Dez 2003, 07:47


Ich danke Dir! Das kommt doch sofort in den Ordner mit der Aufschrift : "Top-Wichtige-Befehle"
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#7

Re: MS SQL2000 - Kollation ändern?

  Alt 20. Dez 2003, 11:29
na wer so lieb bittet, bekommt von mir sogar 'ne Stored Procedure
SQL-Code:
CREATE PROCEDURE dbo.SP_AlterAllCollations
(
 @OLDCOLLATE varchar(255)
,@NEWCOLLATE varchar(255)
)
AS
BEGIN
  declare @Befehl nvarchar(4000)
         ,@err int

  declare BefehlsCursor CURSOR FOR select 'alter table '+so.name+' alter column '+sc.name+' '+st.name+' ('+convert(varchar,sc.length)+') COLLATE '+@NEWCOLLATE AS Befehl
                                     from Sysobjects so
                               inner join syscolumns sc
                                       on sc.id = so.id
                               inner join systypes st
                                       on st.xtype = sc.xtype
                                    where so.type = 'U
                                      and sc.collation = @OLDCOLLATE
  FETCH NEXT FROM BefehlsCursor INTO @Befehl
  set @err = 0
  BEGIN TRANSACTION
  WHILE @@FETCH_STATUS = 0 BEGIN
    exec(@Befehl)
    set @err = @err+@@Error
    FETCH NEXT FROM BefehlsCursor INTO @Befehl
    set @err = @err+@@Error
  END
  if @err <> 0 BEGIN
    ROLLBACK TRANSACTION
    RAISERROR('Irgendwas ist schief gegangen',16,-1)
    RETURN 50000
  END
  COMMIT TRANSACTION
  RETURN 0
END
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
radi5

Registriert seit: 16. Nov 2004
1 Beiträge
 
#8

Re: MS SQL2000 - Kollation ändern?

  Alt 16. Nov 2004, 15:20
Hallo Ihr,

interessiert habe ich Euren Ansatz verfolgt. Genau das suche ich gerade. Leider
kommen bei verschiedenen Feldern Fehlermeldungen nach dem Schema:
SQL-Code:
Server: Msg 5074, Level 16, State 8, Line 1
The object 'pk_dtpropertiesis dependent on column 'property'.
Server: Msg 4922, Level 16, State 1, Line 1
ALTER TABLE ALTER COLUMN property failed because one or more objects access this column.
Soweit ich verstanden habe handelt es sich dabei um verletzte Constraints. Leider habe ich keine Ahnung, wie sich das alles unter den Vorraussetzungen automatisieren läßt.

Weiß jemand Rat?

Viele Grüße
radi5
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz