none
Migrazione SQLServer 200 Vs SQLServer 2012 con collaction diverse. RRS feed

  • Domanda

  • Salve a tutti.

    Un Cliente ha appena affrontato una migrazione del suo SQLServer 2000 vs SQLServer 2012.

    Al termine delle operazioni si è accorto di aver impostato (in fase di installazione della nuova istanza) una collaction diversa dall'originaria "SQL_Latin1_General_CP1_CI_AS" nella attuale "Latin1_General_CI_AS" .
    Il Cliente si è accorto delle differenza dovendo gestire un errore uscito lavorando in una qualche store procedure.

    Posto che potrei sicuramente cambiare la collaction del DB , ho visto che ci sarebbe anche un metodo per cambiare la collaction dell'instanza senza doverla reinstallare: http://blogs.msdn.com/b/psssql/arch...-2008.aspx .

    Mi confermare la diversità delle due collaction ? Che problemi potrebbero scaturire da questa diversità ? 
    Se pensassi di cambiare solo la collaction del DB in cosa potrei andare in contro? 
    Mi dareste qualche vostra considerazione generale in merito? 

    Grazie come sempre, ciao



    Hunternet

    mercoledì 15 ottobre 2014 15:06

Risposte

  • Ciao,

    le due collation sono diverse. Non credo di aver capito quale delle due è quella originaria che vuoi mantenere (quella binaria sarebbe preferibile). Problematiche le potresti incontrare negli confronti e ordinamenti con risultati che non ti aspetti.

    Se decidi di cambiare la collation al solo DB non vai incontro a nessun problema.

    Devi tenere conto che se crei un nuovo DB, se non la specifichi esplicitamente, la collation sarà quella di default dell'istanza di SQL con il rischio di trovarti un DB con collation binaria e un DB con collation SQL.

    Se fai interrogazioni dati su piu DB e hai le collation differenti dovrai specificare nella query stessa la collation da usare per i confronti, nulla più.

    Un abbraccio

    Daniele

    giovedì 16 ottobre 2014 09:40
  • La prima strada è preferibile.

    A modificare tutte le colonne potresti avere dei problemi a causa dei vincoli della clausola COLLATE nel comando ALTER TABLE.

    Impostare o modificare le regole di confronto delle colonne

    Daniele

    • Contrassegnato come risposta HunterNet79 giovedì 16 ottobre 2014 14:00
    giovedì 16 ottobre 2014 13:39

Tutte le risposte

  • Ciao,

    le due collation sono diverse. Non credo di aver capito quale delle due è quella originaria che vuoi mantenere (quella binaria sarebbe preferibile). Problematiche le potresti incontrare negli confronti e ordinamenti con risultati che non ti aspetti.

    Se decidi di cambiare la collation al solo DB non vai incontro a nessun problema.

    Devi tenere conto che se crei un nuovo DB, se non la specifichi esplicitamente, la collation sarà quella di default dell'istanza di SQL con il rischio di trovarti un DB con collation binaria e un DB con collation SQL.

    Se fai interrogazioni dati su piu DB e hai le collation differenti dovrai specificare nella query stessa la collation da usare per i confronti, nulla più.

    Un abbraccio

    Daniele

    giovedì 16 ottobre 2014 09:40
  • Ciao e grazie dell'interessamento.

    A logica preferirei mantenere la piu nuova "Latin1_General_CI_AS".

    Lasciando quindi da parte alcune procedure  trovate in rete per un cambio collaction dell'istanza (alla fine credo converrebbe reinstallarla) , pensando di cambiare la collaction del database,  se non ho capito male avrei due tipi di strade: creare un nuovo DB con la giusta collaction e travasare tutti i dati all'interno oppure impostare la nuova collaction all'attuale DB con un alter database e successivamente andare a cambiare le impostazioni di ogni colonna.

    Tu quale delle due preferiresti ? 

    E se invece decidessi di lasciare inviariata la collaction l'unico problema sarebbe quindi legato all'utilizzo di questo database con altri DB aventi collaction diversa , compreso (immagino) anche il Tempdb ?!

    Grazie in anticipo e ... ricambio l'abbraccio! :-)


    Hunternet

    giovedì 16 ottobre 2014 10:07
  • La prima strada è preferibile.

    A modificare tutte le colonne potresti avere dei problemi a causa dei vincoli della clausola COLLATE nel comando ALTER TABLE.

    Impostare o modificare le regole di confronto delle colonne

    Daniele

    • Contrassegnato come risposta HunterNet79 giovedì 16 ottobre 2014 14:00
    giovedì 16 ottobre 2014 13:39
  • Charissimo. Ti ringrazio e... evviva il forum! 


    Hunternet

    giovedì 16 ottobre 2014 14:00