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....