Comment faire pour modifier la colonne de type de données dans la base de données SQL sans perdre de données
J'ai des 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 déjà entrées dans cette table?
- Avez-vous essayé de créer une nouvelle colonne de bits, en copiant les valeurs de l'ancien colonne dans le nouveau, la suppression de l'ancien et le renommage de la nouvelle? Tout cela dans une transaction, bien sûr, de la restauration sur les problèmes.
- Vous dites "je viens de réaliser que je peux changer le type de l'une des colonnes de type int bool" Il n'y a pas de type de données booléen. Il est peu mais. Demandez-vous comment vous peut le faire (comme les 2 réponses à ce jour ont couvert). Ou est votre question: "je viens de réaliser que c'est possible - Comment SQL Server faire cela?"
- double possible de Comment voulez-vous changer le type de données d'une colonne dans MS SQL?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez facilement le faire en utilisant la commande suivante. N'importe quelle valeur de 0 sera transformé en un 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 le remplir de l'ancienne colonne, et une fois que vous avez terminé, chute de l'ancienne colonne et renommer le nouveau à l'ancien nom. De cette façon, si quelque chose lors de la conversion se passe mal, vous pouvez toujours revenir en arrière car vous avez encore toutes les données..NULL
resteNULL
,0
devientFalse
, les valeurs non nulles (1, -1, 1999, -987...) devenirTrue
.Remarque: si la taille des colonnes, il suffit d'écrire la taille aussi.
Si c'est une modification valide.
vous pouvez modifier la propriété.
Maintenant, vous pouvez facilement changer le nom de la colonne, sans recréer de la table ou de perdre u r des records.
Pourquoi pensez-vous que vous risquez de perdre des données? Il suffit d'aller dans la Gestion de Studio et de modifier le type de données. Si la valeur peut être convertie en booléen (bit), il le fera. En d'autres termes, si "1" correspond à la vraie et la valeur "0" correspond à false dans votre champ d'origine, vous serez amende.
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:
Aller à l'Outil-Option-designers-Table et concepteurs de bases de données et Décochez la case Empêcher l'option d'économie d'
Modifier la colonne type de données à vérifier le type de colonne :
pour moi , dans sql server 2016, je fais comme ça
*Pour renommer la colonne Colonne1 à colonne2
*Pour modifier le Type de colonne de chaîne à int🙁 s'il vous Plaît être sûr que les données sont dans le bon format)
Compact edition prendra automatiquement la taille pour le type de données datetime c'est à dire (8), donc pas besoin de définir la taille de champ et générer l'erreur pour cette opération...
Je peux modifier le tableau du champ type de données, avec ces requête suivante: et aussi dans l'Oracle DB,
Remplacer le type de données sans perte de données