2008-10-24 25 views

cevap

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

Başvuru için: Bu, SQL Server 2005'te de çalışır. – Russell

+0

Bu, SQL Server 2016'da da çalışır;) –

4

sorgu analizörü olarak, alan var olup olmadığını kontrol edin ve aşağıda sorguyu çalıştırmak için gereken hangi tablo içeren veritabanı seçin.

SELECT count(*) AS [Column Exists] 
FROM SYSOBJECTS 
INNER JOIN SYSCOLUMNS ON SYSOBJECTS.ID = SYSCOLUMNS.ID 
WHERE 
SYSOBJECTS.NAME = 'myTable' 
AND SYSCOLUMNS.NAME = 'Myfield' 
8
If col_length('table_name','column_name') is null 
    select 0 as Present 
ELSE 
    select 1 as Present 

0 olacak Günümüze, tablo_ismi mevcut hiçbir sütun_ismi yoktur aksi 1

@CMS: Ben 'information_schema.columns' her tablodaki hakkında bilgi sahibi olduğunu sanmıyorum DB. Çünkü bu benim için işe yaramadı. Ama cevabım işe yaradı. Bu komut SQL 2000 çalışacak olmadığını

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

Bu güzel yapmalıdır ait

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') 
0

Bilmiyorum, ama 2008 eserlerinde:

İlgili konular