Как в запросе узнать наличие нужного столбца в таблице

Cooper
Дата: 11.12.2002 18:50:13
Добрый вечер.
Мой вопрос в теме.
Спасиб!
jimmers
Дата: 11.12.2002 18:55:28
опросить системное представление INFORMATION_SCHEMA.COLUMNS
Cooper
Дата: 11.12.2002 19:05:39
А как?
Glory
Дата: 11.12.2002 22:46:25
IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'MyTable' AND COLUMN_NAME = 'MyColumn')
...
Breakneck
Дата: 12.12.2002 20:08:39
Есть еще один способ, делает то же самое и медленней, но тоже работает:

if exists(select sc.name from syscolumns sc where sc.id =
(select so.id from sysobjects so where name = 'table1') and sc.name = 'column1')
....

Он, само собой, значительно менее элегантен, но имеет право на существование.
папа Карло
Дата: 12.12.2002 20:48:14
последнее не совсем верно.... вот так правильно...

if exists(select top 1 1 from sysobjects so, syscolumns sc where so.name = 'table_name' and so.type = 'U' and sc.id = so.id and sc.name = 'column_name')


удачи!
Breakneck
Дата: 12.12.2002 21:01:27
Насчет поправок в where - согласен, но вот зачем select top 1? Две колонки с одним именем в таблице???
Cooper
Дата: 12.12.2002 21:03:19
Всем спасибо!
Ща буду пробовать.
alexeyvg
Дата: 15.12.2002 11:26:59

if exists(select * from syscolumns sc where sc.id = object_id('MyTableName') and sc.name = 'column_name')