एसक्यूएल में एक टेबल छोड़ना आसान है। आप बस DROP TABLE myTable
. का उपयोग करें जहां myTable
उस तालिका का नाम है जिसे आप छोड़ना चाहते हैं। आप टी-एसक्यूएल स्क्रिप्ट के माध्यम से एसक्यूएल सर्वर में एक टेबल ड्रॉप करने के लिए इस विधि का उपयोग कर सकते हैं।
लेकिन यदि तालिका वास्तव में मौजूद नहीं है तो आपको एक त्रुटि मिलेगी। यही है, जब तक कि आप पहले तालिका के अस्तित्व की जांच न करें।
तालिका को छोड़ने से पहले मौजूद है या नहीं, यह जांचने के लिए टी-एसक्यूएल का उपयोग करने के चार तरीके नीचे दिए गए हैं।
विकल्प 1:IF EXISTS
खंड
SQL सर्वर 2016 या बाद के संस्करण का उपयोग करते समय, हम IF EXISTS
. का उपयोग कर सकते हैं DROP TABLE
. का खंड तालिका को छोड़ने का प्रयास करने से पहले उसके अस्तित्व की जाँच करने के लिए कथन:
DROP TABLE IF EXISTS t1;
यह t1
. नामक तालिका को छोड़ देता है अगर यह मौजूद है।
तालिका मौजूद होने पर उपरोक्त कथन को चलाने का परिणाम यहां दिया गया है (और इसलिए छोड़ दिया गया है):
Commands completed successfully.
और अगर हम तुरंत स्टेटमेंट को फिर से चलाते हैं (यानी जब टेबल मौजूद नहीं है) तो हमें यही मिलता है:
Commands completed successfully.
वही आउटपुट। तो कथन सफलतापूर्वक चलता है कि तालिका मौजूद है या नहीं।
यदि हम IF EXISTS
. का उपयोग किए बिना तालिका को छोड़ने का प्रयास करते हैं तो यहां क्या होता है? खंड:
DROP TABLE t1;
परिणाम:
Msg 3701, Level 11, State 5, Line 1 Cannot drop the table 't1', because it does not exist or you do not have permission.
विकल्प 2:ऑब्जेक्ट आईडी जांचें
हम वैकल्पिक रूप से OBJECT_ID()
. का उपयोग कर सकते हैं तालिका को छोड़ने का प्रयास करने से पहले उसके अस्तित्व की जाँच करने के लिए कार्य करें:
IF OBJECT_ID(N'dbo.t1', N'U') IS NOT NULL
DROP TABLE dbo.t1;
GO
उपरोक्त उदाहरण dbo.t1
. के लिए ऑब्जेक्ट आईडी की जांच करता है टेबल। दूसरा तर्क OBJECT_ID()
उस वस्तु के प्रकार को निर्दिष्ट करता है जिसकी हम तलाश कर रहे हैं। इस मामले में हम U
. का उपयोग करते हैं , जो "उपयोगकर्ता परिभाषित तालिका" के लिए है।
OBJECT_ID()
स्कीमा-स्कोप्ड ऑब्जेक्ट की डेटाबेस ऑब्जेक्ट पहचान संख्या देता है। यदि ऑब्जेक्ट मौजूद है, तो यह NULL नहीं लौटाएगा, और इसलिए, हम तालिका को छोड़ सकते हैं। अगर वस्तु नहीं मौजूद है, या यदि आपके पास इसकी पहुंच नहीं है, तो फ़ंक्शन NULL और DROP TABLE
लौटाता है बयान नहीं चलेगा।
Option 3:query information_schema.tables
यह जांचने का एक और तरीका है कि कोई तालिका पहले से मौजूद है या नहीं, information_schema.tables
. को क्वेरी करना है देखें:
IF EXISTS (
SELECT * FROM information_schema.tables
WHERE table_schema = 'dbo' AND table_name = 't1')
DROP TABLE dbo.t1;
यह पिछले उदाहरण के समान काम करता है; यह तालिका के अस्तित्व की जाँच करता है और इसे केवल तभी बनाता है जब यह मौजूद न हो।
विकल्प 4:क्वेरी sys.tables
हम sys.tables
. को भी क्वेरी कर सकते हैं सिस्टम कैटलॉग व्यू:
IF EXISTS (
SELECT * FROM sys.tables t
JOIN sys.schemas s ON (t.schema_id = s.schema_id)
WHERE s.name = 'dbo' AND t.name = 't1')
DROP TABLE dbo.t1;
SQL सर्वर तालिकाओं के अस्तित्व की जाँच करने के लिए कई अन्य तरीके प्रदान करता है। उदाहरण के लिए SQL सर्वर में तालिका मौजूद है या नहीं, यह जांचने के 6 तरीके देखें।