saber - ¿Cómo puedo verificar si existe una columna en SQL Server?
validar insert mysql (5)
¿Cómo puedo verificar si existe una columna en SQL Server 2000?
No sé si este script funcionará en sqlserver 2000, pero en 2008 funciona:
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'')
IF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME=''tablename'' AND COLUMN_NAME=''columname'' )
If col_length(''table_name'',''column_name'') is null
select 0 as Present
ELSE
select 1 as Present
Presente será 0, no hay column_name presente en table_name, de lo contrario 1
@CMS: no creo que ''INFORMATION_SCHEMA.COLUMNS'' tenga información sobre cada tabla en DB. Porque esto no funcionó para mí. Pero mi respuesta funcionó.
En el analizador de consultas, seleccione la base de datos que contiene la tabla en la que debe verificar si el campo existe o no y ejecute la consulta a continuación.
SELECT count(*) AS [Column Exists]
FROM SYSOBJECTS
INNER JOIN SYSCOLUMNS ON SYSOBJECTS.ID = SYSCOLUMNS.ID
WHERE
SYSOBJECTS.NAME = ''myTable''
AND SYSCOLUMNS.NAME = ''Myfield''
Esto debería hacer muy bien:
if COLUMNPROPERTY(object_id(''table_name''), ''column_name'', ''ColumnId'') is null
print ''doesn/'t exist''
else
print ''exists''