J'utilise SQL Server 2008 R2.
Je veux supprimer la colonne si elle existe déjà dans la table sinon ne pas jeter d'erreur.
A tenté:
ALTER TABLE Emp
DROP COLUMN IF EXISTS Lname;
Erreur:
Syntaxe incorrecte près du mot clé "IF".
En cherchant, j'ai appris que cette option est disponible à partir de 2016.
Quelle est l'alternative dans SQL Server 2008 R2?
IF EXISTS (SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Emp'
AND COLUMN_NAME = 'Lname'
AND TABLE_SCHEMA='DBO')
BEGIN
ALTER TABLE Emp
DROP COLUMN Lname
END
GO
Depuis le MSDN social documentation , nous pouvons essayer:
IF EXISTS (SELECT 1 FROM sys.objects o
INNER JOIN sys.columns c ON o.object_id = c.object_id
WHERE o.name = 'Emp' AND c.name = 'Lname')
ALTER TABLE dbo.Emp DROP COLUMN Lname;