Мені потрібно додати певний стовпець, якщо він не існує. У мене є щось на кшталт наступного, але воно завжди повертає false:
IF EXISTS(SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'myTableName'
AND COLUMN_NAME = 'myColumnName')
Як перевірити, чи існує стовпець в таблиці бази даних SQL Server?
Налаштуйте наведені нижче параметри відповідно до ваших конкретних вимог:
if not exists (select
column_name
from
INFORMATION_SCHEMA.columns
where
table_name = 'MyTable'
and column_name = 'MyColumn')
alter table MyTable add MyColumn int
Редагування для роботи з редагуванням питання: Це повинно спрацювати - уважно перегляньте свій код на наявність безглуздих помилок; наприклад, чи запитуєте ви INFORMATION_SCHEMA до тієї ж бази даних, до якої застосовується ваша вставка? Чи є у вас помилка в назві таблиці / стовпця в обох операторах?
Спробуй це...
IF NOT EXISTS(
SELECT TOP 1 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
[TABLE_NAME] = 'Employees'
AND [COLUMN_NAME] = 'EmployeeID')
BEGIN
ALTER TABLE [Employees]
ADD [EmployeeID] INT NULL
END
Спочатку перевірте, чи існує комбінація table
/column
(id
/name
) в dbo.syscolumns
(внутрішня таблиця SQL Server, яка містить визначення полів), і якщо ні, видайте відповідний запит ALTER TABLE
для її додавання. Наприклад:
IF NOT EXISTS ( SELECT *
FROM syscolumns
WHERE id = OBJECT_ID('Client')
AND name = 'Name' )
ALTER TABLE Client
ADD Name VARCHAR(64) NULL