IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

SQLServer (remplacer les colonnes ayant des types obsolètes)


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut SQLServer (remplacer les colonnes ayant des types obsolètes)
    Bonjour, j'utilise SQLServer 2012 pour un site internet, en voulant modifier le caractère '?' par ''' dans un champs NTEXT je me suis apperçu qu'il était obsolète.

    En faisant des recherches je suis tombé sur le blog http://blog.developpez.com/sqlpro/p1...types-obsoletes qui propose un script pour rechercher les champs obsolètes et proposer des scripts pour les passer au nouveaux types de champs.
    Par exemple pour le type DATETIME -->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    BEGIN TRANSACTION;
    BEGIN TRY
       EXEC ('ALTER TABLE [dbo].[Commandes] ADD [Date_com_tmp] DATETIME2(3);')
       EXEC ('UPDATE [dbo].[Commandes] SET [Date_com_tmp]  = [Date_com];')
       EXEC ('ALTER TABLE [dbo].[Commandes] DROP COLUMN [Date_com];')
       EXEC sp_rename '[dbo].[Commandes].[Date_com_tmp]', 'Date_com';
       COMMIT;
    END TRY
    BEGIN CATCH
       DECLARE @ERR NVARCHAR(1200);
       SET @ERR = ERROR_MESSAGE();
       IF XACT_STATE()  0
          ROLLBACK;
       RAISERROR(@ERR, 16, 1);
    END CATCH;
    GO
    Mais SQLManagementStudio me retourne invariablement la même erreur sur tous les types que je souhaites transformer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*102, Niveau*15, État*1, Ligne*13
    Syntaxe incorrecte vers '0'.
    Soit la ligne : IF XACT_STATE() 0

    Quelqu'un aurait-il une solution ? car là je sèche....

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour

    je dirai qu'il manque juste le signe "différent"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IF XACT_STATE()  <> 0

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Par défaut
    Merci ça fonctionne !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CR 2008] remplacer les 'crlf' par des espaces dans un texte de "type" RTF
    Par digitfree dans le forum Formules
    Réponses: 5
    Dernier message: 02/04/2013, 11h18
  2. [CSV] Remplacer les points par des virgules
    Par johnkro dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2008, 19h25
  3. remplacer les boutons par des images
    Par sotfage dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 18/06/2007, 17h41
  4. Label d'axe graphique: remplacer les nombres par des mots
    Par Chrysomallus dans le forum MATLAB
    Réponses: 3
    Dernier message: 19/04/2007, 15h23
  5. [vb6] Remplacer les Frames par des PictureBox
    Par Christophe P. dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/07/2006, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo