Подтвердить что ты не робот

Как проверить, существует ли столбец в SQL Server?

Как проверить, существует ли столбец в SQL Server 2000?

4b9b3361

Ответ 1

IF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE  TABLE_NAME='tablename' AND COLUMN_NAME='columname' )

Ответ 2

If col_length('table_name','column_name') is null
    select 0 as Present
ELSE
    select 1 as Present

Present будет равен 0, нет ли в имени_таблицы имени_ column_name, в противном случае 1

@CMS: Я не думаю, что "INFORMATION_SCHEMA.COLUMNS" содержит информацию о каждой таблице в БД. Потому что это не сработало для меня. Но мой ответ сработал.

Ответ 3

В анализаторе запросов выберите базу данных, содержащую таблицу, в которой необходимо проверить, существует ли это поле или нет, и выполните запрос ниже.

SELECT count(*) AS [Column Exists] 
FROM SYSOBJECTS  
INNER JOIN SYSCOLUMNS ON SYSOBJECTS.ID = SYSCOLUMNS.ID 
WHERE 
 SYSOBJECTS.NAME = 'myTable' 
 AND SYSCOLUMNS.NAME = 'Myfield'

Ответ 4

Это должно сделать красиво:

if COLUMNPROPERTY(object_id('table_name'), 'column_name', 'ColumnId') is null
  print 'doesn\'t exist'
else
  print 'exists'

Ответ 5

Я не знаю, будет ли этот script работать в sqlserver 2000, но в 2008 году работает:

SELECT COLUMNS.*
FROM INFORMATION_SCHEMA.COLUMNS COLUMNS, INFORMATION_SCHEMA.TABLES TABLES
WHERE COLUMNS.TABLE_NAME=TABLES.TABLE_NAME AND UPPER(COLUMNS.COLUMN_NAME)=UPPER('column_name')