J'utilise SQL Server 2008 et Navicat. J'ai besoin de renommer une colonne d'une table en utilisant SQL.
ALTER TABLE table_name RENAME COLUMN old_name to new_name;
Cette déclaration ne fonctionne pas.
sql
sql-server
sql-server-2008
alter-table
Serhio g. Lazin
la source
la source
Réponses:
Utilisation
sp_rename
Voir: SQL SERVER - Comment renommer un nom de colonne ou un nom de table
Documentation: sp_rename (Transact-SQL)
Pour votre cas ce serait:
N'oubliez pas d'utiliser des guillemets simples pour entourer vos valeurs.
la source
EXEC sp_RENAME '[TableName].[OldColumnName]', 'NewColumnName', 'COLUMN'
alter table
qui ÉCHOUERA si de telles contraintes existent.Vous
SQL
pouvez également le faire dans Microsoft SQL Server Management Studio. Voici quelques façons rapides d'utiliser l'interface graphique:Première voie
Double-cliquez lentement sur la colonne. Le nom de la colonne deviendra une zone de texte modifiable.
Deuxième voie
Faites un clic droit sur la colonne et choisissez Renommer dans le menu contextuel.
Par exemple:
Troisième voie
Cette méthode est préférable lorsque vous devez renommer plusieurs colonnes en une seule fois.
Par exemple:
REMARQUE: je sais que OP a spécifiquement demandé une solution SQL, pensant que cela pourrait aider les autres :)
la source
Essayer:
la source
Vous devez également spécifier le schéma de la table ou vous pourriez obtenir cette erreur:
S'il s'agit d'un script de déploiement, je recommanderais également d'y ajouter une sécurité supplémentaire.
la source
Ce serait une bonne suggestion d'utiliser une fonction déjà intégrée, mais une autre solution consiste à:
L'avantage derrière l'utilisation du
sp_rename
est qu'il prend en charge toutes les relations qui lui sont associées.De la documentation :
la source
Vous pouvez utiliser
sp_rename
pour renommer une colonne.Le premier paramètre est l'objet à modifier, le deuxième paramètre est le nouveau nom qui sera donné à l'objet et le troisième paramètre COLUMN informe le serveur que le changement de nom est pour le
column
, et peut également être utilisé pour renommertables
,index
etalias data type
.la source
Comme je viens souvent ici et que je me demande ensuite comment utiliser les crochets, cette réponse pourrait être utile pour ceux comme moi.
OldColumnName
ne doit pas être dedans[]
. Ça ne marchera pas.NewColumnName
en[]
, il en résultera en[[NewColumnName]]
.la source
Sql Server Management Studio possède des procédures stockées (SP) définies par le système,
dont l'une est utilisée pour renommer une colonne. Le SP est sp_rename
Syntaxe: sp_rename '[nom_table] .old_column_name', 'new_column_name'
Pour plus d'informations, reportez-vous à cet article: sp_rename de Microsoft Docs
Remarque: lors de l' exécution de ce SP, le serveur SQL vous enverra un message d'avertissement comme `` Attention: la modification d'une partie du nom d'un objet peut casser les scripts et les procédures stockées '' .Ceci n'est critique que si vous avez écrit votre propre sp qui implique la colonne dans le tableau que vous êtes sur le point de changer.
la source
Version améliorée de @Taher
la source
Ou vous pouvez simplement cliquer deux fois lentement sur la colonne dans SQL Management Studio et la renommer via l'interface utilisateur ...
la source
Exécuter la requête:
la source