2008-10-24 16 views
24

SQL सर्वर 2000 में कोई कॉलम मौजूद है या नहीं, मैं कैसे जांचूं?मैं कैसे जांचूं कि SQL सर्वर में कोई कॉलम मौजूद है या नहीं?

+2

के संभावित डुप्लिकेट [कैसे करता है, तो जाँच करने के लिए स्तंभ SQL सर्वर तालिका में मौजूद है] (http://stackoverflow.com/questions/133031/how-to-check-if-column-exists-in-sql-server-table) –

उत्तर

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

संदर्भ के लिए: यह SQL Server 2005 में भी काम करता है – Russell

+0

यह SQL सर्वर 2016 पर भी काम करता है;) –

4

क्वेरी विश्लेषक में, उस डेटाबेस का चयन करें जिसमें वह तालिका है जिसमें आपको यह जांचने की आवश्यकता है कि फ़ील्ड मौजूद है या नहीं और नीचे दी गई क्वेरी चलाएं।

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 हो जाएगा, कोई स्तंभ TABLE_NAME में मौजूद नहीं है, अन्यथा 1

@CMS है: मुझे नहीं लगता कि 'INFORMATION_SCHEMA.COLUMNS' में हर तालिका के बारे में जानकारी की क्या ज़रूरत है डीबी। क्योंकि यह मेरे लिए काम नहीं किया था। लेकिन मेरे जवाब ने काम किया।

1

यह अच्छी तरह से करना चाहिए:

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

मैं अगर इस स्क्रिप्ट 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')