Comment supprimer une colonne d'une table existante ?
J'ai une table MEN
con Fname
y Lname
Je dois retirer le Lname
Comment faire ?
Comment supprimer une colonne d'une table existante ?
J'ai une table MEN
con Fname
y Lname
Je dois retirer le Lname
Comment faire ?
Votre exemple est simple et ne nécessite pas de modifications supplémentaires des tables, mais de manière générale, ce n'est pas si trivial.
Si cette colonne est référencée par d'autres tables, vous devez déterminer ce qu'il faut faire avec les autres tables/colonnes. Une option consiste à supprimer les clés étrangères et à conserver les données référencées dans d'autres tables.
Une autre option consiste à rechercher toutes les colonnes de référence et à les supprimer également si elles ne sont plus nécessaires.
Dans ce cas, le véritable défi consiste à trouver toutes les clés étrangères. Vous pouvez le faire en interrogeant les tables du système ou en utilisant des outils tiers tels que Recherche ApexSQL (gratuit) ou Red Gate Suivi des dépendances (premium mais plus de fonctionnalités). Il y a un fil entier sur les clés étrangères aquí
C'est la bonne réponse :
ALTER TABLE MEN DROP COLUMN Lname
Mais... si un CONSTRAINT
existe sur le COLUMN
alors vous devez DROP
le site CONSTRAINT
d'abord, puis vous serez en mesure de DROP
le site COLUMN
. Afin de déposer un CONSTRAINT
, cours :
ALTER TABLE MEN DROP CONSTRAINT {constraint_name_on_column_Lname}
La question est la suivante : peut-on seulement supprimer une colonne d'une table non existante ?)
BEGIN TRANSACTION
IF exists (SELECT * FROM sys.columns c
INNER JOIN sys.objects t ON (c.[object_id] = t.[object_id])
WHERE t.[object_id] = OBJECT_ID(N'[dbo].[MyTable]')
AND c.[name] = 'ColumnName')
BEGIN TRY
ALTER TABLE [dbo].[MyTable] DROP COLUMN ColumnName
END TRY
BEGIN CATCH
print 'FAILED!'
END CATCH
ELSE
BEGIN
SELECT ERROR_NUMBER() AS ErrorNumber;
print 'NO TABLE OR COLUMN FOUND !'
END
COMMIT
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.