如何检查SQL Server中是否存在列?
答
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='tablename' AND COLUMN_NAME='columname')
+1
仅供参考:这也适用于SQL Server 2005 – Russell 2009-10-28 04:57:25
答
在查询分析器中,选择包含您需要检查字段是否存在的表的数据库,并运行下面的查询。
SELECT count(*) AS [Column Exists]
FROM SYSOBJECTS
INNER JOIN SYSCOLUMNS ON SYSOBJECTS.ID = SYSCOLUMNS.ID
WHERE
SYSOBJECTS.NAME = 'myTable'
AND SYSCOLUMNS.NAME = 'Myfield'
答
If col_length('table_name','column_name') is null
select 0 as Present
ELSE
select 1 as Present
目前为0,是没有列名出现在表名,另有1
@CMS:我不认为“INFORMATION_SCHEMA.COLUMNS”有大约在每一个表中的信息D B。因为这不适合我。但我的回答确实奏效了。
答
这应该很好地做到:
if COLUMNPROPERTY(object_id('table_name'), 'column_name', 'ColumnId') is null
print 'doesn\'t exist'
else
print 'exists'
答
我不知道该脚本将在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')
可能重复[如何检查是否列存在于SQL Server表中](http://stackoverflow.com/questions/133031/how-to-check-if-column-exists-in-sql-server-table) – 2011-12-11 19:16:44