Comment faire pour modifier le type de données d'une colonne, sans renoncer à la colonne de la requête?
J'ai une colonne qui a un type de données : datetime. Mais maintenant, je veux le convertir en type de données varchar. Puis-je modifier le type de données sans droppping la colonne? Si oui, veuillez expliquer de quelle manière?
Vous devez vous connecter pour publier un commentaire.
Si ALTER COLUMN ne fonctionne pas.
Il n'est pas inhabituel pour modifier la colonne à l'échec car il ne peut pas faire la transformation que vous désirez. Dans ce cas, la solution consiste à créer une table factice TableName_tmp, copier les données sur votre spécialisées de transformation dans le bulk Insert de commande, chute de la table d'origine, et renommez le tmp table à la table d'origine de son nom. Vous devez supprimer et recréer les contraintes de clé Étrangère et, pour les performances, vous aurez probablement envie de créer des clés après le remplissage de la tmp table.
Sembler comme beaucoup de travail? En fait, il n'est pas.
Si vous utilisez SQL Server, vous pouvez faire le SQL Server Management Studio faire le travail pour vous!
Apporter votre structure de la table (clic droit sur le tableau et sélectionnez "Modifier") et de faire toutes vos modifications (le cas de la transformation de la colonne est illégal, il suffit d'ajouter votre nouvelle colonne - vous aurez une pièce dans un instant). Ensuite, cliquez-droit sur l'arrière-plan de la fenêtre Modifier et sélectionnez "Générer le Script de Modification." Dans la fenêtre qui apparaît, vous pouvez copier le script de modification dans le presse-papiers.
Annuler la Modifier (vous aurez envie de tester votre script, après tout), puis collez le script dans une nouvelle fenêtre de requête. Modifier au besoin (par exemple, ajouter votre transformation, tout en supprimant le champ de la tmp déclaration de tableau) et vous avez maintenant le script nécessaire pour faire de votre transformation.
MSDN dit
Méfiez-vous des limites de la clause ALTER COLUMN énumérées dans l'article
c'est simple! tapez juste le soufflet de la requête
il fonctionnera
bonne programmation
Avec SQL server 2008 et plus, à l'aide de cette requête:
Ce travail pour postgresql 9.0.3
http://www.postgresql.org/docs/8.0/static/sql-altertable.html
ALTER TABLE YourTableNameHere ALTER COLUMN YourColumnNameHere VARCHAR(20) c'est parfait pour changer de type de données
ORACLE - Alter table nom_table modifier(nom_colonne new_DataType);
ALTER TABLE yourtable MODIFIER la COLONNE yourcolumn type de données
Je ne suis pas sûr de savoir comment il va gérer le changement de datetime varchar cependant, de sorte que vous devrez peut-être renommer la colonne ajouter un nouveau avec de l'ancien nom et le type de données correct (varchar), puis d'écrire une requête mise à jour pour remplir la nouvelle colonne à partir de l'ancien.
http://www.1keydata.com/sql/sql-alter-table.html
ALTER TABLE table_name RENAME COLUMN old_name to new_name
qui n'est pas ce que l'OP a été demandé.