Changement d’une colonnes Type de données

J’ai une table qui contient plus de 10 000 lignes, et je veux changer une colonne de type de données numériques en type de données flottantes. Comment puis-je accomplir ce changement avec le moins d’impact possible sur la disponibilité des données ?

Vous avez trois options pour changer le type de données de la colonne. La première, vous pouvez utiliser une instruction SELECT telle que

SELECT a,b,c,CAST(d AS float) AS N'd',e,f,g INTO dbo.newtable

Vous utilisez ensuite sp_rename pour renommer l’ancienne table, renommer newtable comme l’ancienne table, et réinitialiser vos autorisations et index. Une deuxième option consiste à utiliser la commande ALTER TABLE pour modifier le type de données de la colonne, en utilisant la syntaxe suivante pour ALTER TABLE:

ALTER TABLE <table>\{ \ ) \]

Ou, comme troisième option, vous pouvez utiliser le programme de copie en masse (bcp) pour copier les données, puis abandonner la table, créer la nouvelle table, utiliser bcp pour copier les données dans la nouvelle table, et réinitialiser les autorisations et les index.

Typiquement, je recommanderais d’utiliser l’option ALTER TABLE, surtout si vous n’avez que quelques milliers de lignes de données, car cette solution n’affecte pas les permissions. Cependant, l’utilisation de la commande ALTER TABLE a un impact sur la disponibilité des données, donc vous ne voudrez probablement pas l’utiliser pendant les heures de travail habituelles ou si vous avez des millions de lignes dans votre table.

Pour en savoir plus, consultez les sites  » Cool New SQL Server 2012 Metadata  » et  » Report Builder and Tabular Model Databases « .

-Patrick Conlan
Platform Program Manager,
Microsoft Project Team

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *