J'ai attribué le type de données d'une des colonnes d'une table que j'ai créée en tant que int
. Mon problème est qu'il n'affiche pas de décimales lorsque j'exécute une requête contre lui.
Comment puis-je corriger le type de données de cette colonne afin qu'elle accepte les décimales?
Le tableau est dbo.Budget
et la colonne concernée s'appelle ROE
.
Facile - il suffit d'exécuter cette instruction SQL
ALTER TABLE dbo.Budget
ALTER COLUMN ROE DECIMAL(20,2) -- or whatever precision and scale you need.....
Consultez la documentation de MSDN disponible gratuitement sur la précision, l'échelle et la longueur en nombres décimaux et les plages de valeurs. possible
Juste pour que cela soit clairement énoncé:
S'il n'y a pas de données dans le tableau, ou pas beaucoup, alors le simple ALTER TABLE
déclaration (comme décrit dans les autres réponses ici) est très bien.
Mais, s'il y a beaucoup de données (des millions de lignes, ou peut-être moins selon la taille de la table) et/ou beaucoup de conflits sur la table et pas beaucoup d'opportunité pour une fenêtre complète de temps d'arrêt/maintenance, alors cela nécessite une approche différente, comme celle que j'ai décrite dans cette réponse: Rétrécissement des types de données sur une très grande table .
Modifier le type de données de cette colonne ..Mais en général, sql ne permet pas de changer. Il vous invite à supprimer cette colonne .. Il y a un paramètre pour atteindre cette chose.
Accédez à Tool-Option-designers-Table et Database designers et décochez l'option Prevent save. Je prends abt sql server 2008R2
Vous pouvez exécuter cette simple instruction sql
Alter table yourtable
Alter Column yourtable_column Decimal(10,2)
vous pouvez définir la précision décimale et mettre à l'échelle tout ce dont vous avez besoin.