J'ai une base de données SQL Server et je viens de réaliser que je peux changer le type de l'une des colonnes de int
à bool
.
Comment puis-je le faire sans perdre les données qui sont déjà entrées dans ce tableau?
sql-server
sql-server-2008
alter
Ivan Stoyanov
la source
la source
Réponses:
Vous pouvez facilement le faire en utilisant la commande suivante. Toute valeur de 0 sera transformée en 0 (BIT = false), tout le reste sera transformé en 1 (BIT = true).
L'autre option serait de créer une nouvelle colonne de type
BIT
, de la remplir à partir de l'ancienne colonne, et une fois que vous avez terminé, déposez l'ancienne colonne et renommez la nouvelle en l'ancien nom. De cette façon, si quelque chose se passe mal pendant la conversion, vous pouvez toujours revenir en arrière car vous avez toujours toutes les données.la source
NULL
resteNULL
,0
devientFalse
, des valeurs non nulles (1, -1, 1999, -987 ...) deviennentTrue
.Remarque: s'il y a une taille de colonnes, écrivez simplement la taille également.
la source
S'il s'agit d'un changement valide.
vous pouvez changer la propriété.
Maintenant, vous pouvez facilement changer le nom de la colonne sans recréer la table ou perdre vos enregistrements ur.
la source
Pourquoi pensez-vous que vous perdrez des données? Accédez simplement à Management Studio et modifiez le type de données. Si la valeur existante peut être convertie en bool (bit), elle le fera. En d'autres termes, si "1" correspond à vrai et "0" correspond à faux dans votre champ d'origine, tout ira bien.
la source
si vous utilisez T-SQL (MSSQL); vous devriez essayer ce script:
si vous utilisez MySQL; vous devriez essayer ce script:
si vous utilisez Oracle; vous devriez essayer ce script:
la source
Accédez à Tool-Option-designers-Table et Database designers et décochez l'option Prevent save
la source
Modifier le type de données de la colonne avec vérifier le type de colonne:
la source
pour moi, dans sql server 2016, je le fais comme ça
* Pour renommer la colonne Colonne1 en colonne2
* Pour modifier le type de colonne de la chaîne à l' int : ( veuillez vous assurer que les données sont au format correct )
la source
Dans l'édition compacte prendra automatiquement la taille pour le type de données datetime ie (8) donc pas besoin de définir la taille du champ et de générer une erreur pour cette opération ...
la source
Je peux modifier le type de données du champ de table, avec les requêtes suivantes: et aussi dans la base de données Oracle,
la source
Remplacez le type de données sans perdre de données
la source