SQL सर्वर में, आप FILE_IDEX()
. का उपयोग कर सकते हैं किसी दिए गए डेटाबेस फ़ाइल की आईडी वापस करने के लिए कार्य। आप FILE_ID()
. का भी उपयोग कर सकते हैं एक ही काम करने के लिए कार्य करें। दोनों फंक्शन काफी हद तक एक ही उद्देश्य की पूर्ति करते हैं, तो T-SQL के दोनों फंक्शन क्यों हैं?
ऐसा प्रतीत होता है कि FILE_IDEX()
FILE_ID()
. का प्रतिस्थापन है , और यह फ़ाइल आईडी की एक बड़ी रेंज का समर्थन करता है। Microsoft अब FILE_ID()
using का उपयोग न करने की अनुशंसा करता है , क्योंकि यह रखरखाव मोड में है और इसे SQL सर्वर के भविष्य के संस्करण में हटाया जा सकता है।
इसलिए यदि आप एक त्वरित उत्तर की तलाश में हैं कि किस फ़ंक्शन का उपयोग करना है, तो FILE_IDEX()
का उपयोग करें ।
लेकिन अगर आप इन दो कार्यों के बीच अंतर में रुचि रखते हैं, तो पढ़ें।
अंतर
FILE_IDEX()
. के बीच का अंतर और FILE_ID()
वापसी प्रकारों में है।
FILE_IDEX()
एक int . लौटाता है ।FILE_ID()
एक छोटा देता है ।
तथ्य यह है कि FILE_IDEX()
एक पूर्णांक देता है जिसका अर्थ है कि यह बड़ी फ़ाइल आईडी को संभाल सकता है। उदाहरण के लिए, यह पूर्ण-पाठ कैटलॉग को संभाल सकता है।
छोटा डेटा प्रकार केवल 32,767 तक के मानों को संभाल सकता है, जबकि एक int 2,147,483,647 तक के मानों को संभाल सकता है। SQL सर्वर में, पूर्ण-पाठ कैटलॉग को असाइन की गई फ़ाइल पहचान संख्या 32,767 से अधिक है, और इसलिए, FILE_ID()
पूर्ण-पाठ कैटलॉग का समर्थन नहीं करता है।
उदाहरण
FILE_ID()
. की सीमाओं को प्रदर्शित करने के लिए यहां एक त्वरित उदाहरण दिया गया है FILE_IDEX()
. से तुलना करने पर :
USE WideWorldImportersDW; SELECT FILE_IDEX('WWIDW_InMemory_Data_1') AS [FILE_IDEX()], FILE_ID('WWIDW_InMemory_Data_1') AS [FILE_ID()];
परिणाम:
+---------------+-------------+ | FILE_IDEX() | FILE_ID() | |---------------+-------------| | 65537 | NULL | +---------------+-------------+
इस मामले में, फ़ाइल आईडी 32,767 से अधिक है और इसलिए FILE_ID()
रिटर्न NULL
।