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