У меня есть таблица Person, в которой есть столбец Status.Следующий код существует в файле sqlt, который я пытаюсь выполнить
if not exists(select 1 from sysobjects, syscolumns where sysobjects.id = syscolumns.id and sysobjects.name = 'Person' and syscolumns.name = 'Status')
begin
print "Inside the if statement"
end
go
Это работает нормально, и ничего не печатается, поскольку таблица и столбец оба существуют.Если я изменю файл на следующий
if not exists(select 1 from sysobjects, syscolumns where sysobjects.id = syscolumns.id and sysobjects.name = 'Person' and syscolumns.name = 'Status')
begin
print "Inside the if statement"
alter table Person
add Status char(5) DEFAULT 'INVLD' NOT NULL
end
go
Это не работает, и я получаю следующее сообщение об ошибке:
Сообщение 2705, Уровень 16, Состояние 3
Сервер 'NEXUS', строка 6
Имена столбцов в каждой таблице должны быть уникальными.Имя столбца «Статус» в таблице «Персона» указывается более одного раза.
Почему оно входит внутрь, если в этом коде?Какое решение для этого?