SQL सर्वर 2000 में कोई कॉलम मौजूद है या नहीं, मैं कैसे जांचूं?मैं कैसे जांचूं कि SQL सर्वर में कोई कॉलम मौजूद है या नहीं?
उत्तर
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='tablename' AND COLUMN_NAME='columname')
संदर्भ के लिए: यह SQL Server 2005 में भी काम करता है – Russell
यह SQL सर्वर 2016 पर भी काम करता है;) –
क्वेरी विश्लेषक में, उस डेटाबेस का चयन करें जिसमें वह तालिका है जिसमें आपको यह जांचने की आवश्यकता है कि फ़ील्ड मौजूद है या नहीं और नीचे दी गई क्वेरी चलाएं।
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 हो जाएगा, कोई स्तंभ TABLE_NAME में मौजूद नहीं है, अन्यथा 1
@CMS है: मुझे नहीं लगता कि 'INFORMATION_SCHEMA.COLUMNS' में हर तालिका के बारे में जानकारी की क्या ज़रूरत है डीबी। क्योंकि यह मेरे लिए काम नहीं किया था। लेकिन मेरे जवाब ने काम किया।
यह अच्छी तरह से करना चाहिए:
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 सर्वर तालिका में मौजूद है] (http://stackoverflow.com/questions/133031/how-to-check-if-column-exists-in-sql-server-table) –