मैं SQL सर्वर 2008 R2 का उपयोग कर रहा हूँ।

मैं कॉलम को छोड़ना चाहता हूं यदि यह तालिका में पहले से मौजूद है और कोई त्रुटि नहीं फेंकता है।

कोशिश की:

ALTER TABLE Emp 
DROP COLUMN IF EXISTS Lname;

त्रुटि:

कीवर्ड 'IF' के पास गलत सिंटैक्स।

खोजने पर पता चला कि यह विकल्प 2016 से उपलब्ध है।

SQL Server 2008 R2 में विकल्प क्या है?

14
MAK 24 जुलाई 2018, 09:42
'ड्रॉप कॉलम अगर मौजूद है' तो यह MySQL है, अगर मैं गलत नहीं हूँ
 – 
Stanislav Kundii
24 जुलाई 2018, 09:52
SQL सर्वर 2016+ उस सिंटैक्स का भी समर्थन करता है।
 – 
MarredCheese
10 फरवरी 2020, 20:30

2 जवाब

सबसे बढ़िया उत्तर
IF EXISTS (SELECT 1
               FROM   INFORMATION_SCHEMA.COLUMNS
               WHERE  TABLE_NAME = 'Emp'
                      AND COLUMN_NAME = 'Lname'
                      AND TABLE_SCHEMA='DBO')
  BEGIN
      ALTER TABLE Emp
        DROP COLUMN Lname
  END
GO
27
Chanukya 24 जुलाई 2018, 09:44
यदि किसी को एकाधिक कॉलम छोड़ना है तो हम उपरोक्त कथन को कैसे बदलेंगे? कृपया सुझाव दे
 – 
vikrant rana
17 सितंबर 2019, 11:09
1
राणा आपको प्रत्येक कॉलम को लपेटना होगा जिसे आपको अलग-अलग में छोड़ना होगा यदि कथन
 – 
Paul O.
26 सितंबर 2019, 18:27
ओ... धन्यवाद. मैं इसे जल्द ही एक कोशिश दूंगा।
 – 
vikrant rana
26 सितंबर 2019, 20:16

MSDN सामाजिक से -table?forum=transactsql" rel="nofollow noreferrer">दस्तावेज़ीकरण, हम कोशिश कर सकते हैं:

IF EXISTS (SELECT 1 FROM sys.objects o
          INNER JOIN sys.columns c ON o.object_id = c.object_id
          WHERE o.name = 'Emp' AND c.name = 'Lname')
ALTER TABLE dbo.Emp DROP COLUMN Lname;
3
Tim Biegeleisen 24 जुलाई 2018, 10:09
1
ओह... क्यों शामिल हों? 'c.object_id = OBJECT_ID('dbo.Emp')' और शीर्ष?
 – 
Stanislav Kundii
24 जुलाई 2018, 09:51