Einzelnen Beitrag anzeigen

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