Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में दी गई फ़ाइल आईडी के लिए तार्किक फ़ाइल नाम वापस करने के लिए FILE_NAME() का उपयोग करें

SQL सर्वर में, आप FILE_NAME() . का उपयोग कर सकते हैं किसी दिए गए डेटाबेस फ़ाइल के तार्किक फ़ाइल नाम को वापस करने के लिए कार्य करता है।

ऐसा करने के लिए, फ़ाइल आईडी को फ़ंक्शन में पास करें। यह वह आईडी है जो file_id . से मेल खाती है sys.master_files . में कॉलम कैटलॉग दृश्य या sys.database_files कैटलॉग दृश्य। उन दृश्यों में तार्किक फ़ाइल नाम भी होता है, लेकिन FILE_NAME() फ़ंक्शन आपको उन विचारों को क्वेरी करने से बचाता है।

उदाहरण 1 - मूल उपयोग

प्रदर्शित करने के लिए यहां एक त्वरित उदाहरण दिया गया है।

USE WideWorldImportersDW;
SELECT FILE_NAME(1) AS Result;

परिणाम:

+-------------+
| Result      |
|-------------|
| WWI_Primary |
+-------------+

उदाहरण 2 - अधिक फ़ाइलें

यहां एक और उदाहरण दिया गया है, इस बार तीन फाइलें लौटा रहे हैं।

USE WideWorldImportersDW;
SELECT 
  FILE_NAME(1) AS [File 1], 
  FILE_NAME(2) AS [File 2], 
  FILE_NAME(3) AS [File 3];

परिणाम:

+-------------+----------+--------------+
| File 1      | File 2   | File 3       |
|-------------+----------+--------------|
| WWI_Primary | WWI_Log  | WWI_UserData |
+-------------+----------+--------------+

उदाहरण 3 - अलग डेटाबेस

इस उदाहरण में मैं एक अलग डेटाबेस पर स्विच करता हूं, फिर क्वेरी को फिर से चलाता हूं।

USE Music;
SELECT 
  FILE_NAME(1) AS [File 1], 
  FILE_NAME(2) AS [File 2], 
  FILE_NAME(3) AS [File 3];

परिणाम:

+----------+-----------+----------+
| File 1   | File 2    | File 3   |
|----------+-----------+----------|
| Music    | Music_log | NULL     |
+----------+-----------+----------+

इस मामले में, 3 की आईडी वाली कोई फ़ाइल नहीं है, इसलिए मुझे उस कॉलम के लिए एक NULL परिणाम मिलता है।

उदाहरण 4 - sys.database_files का उपयोग करना

जैसा कि बताया गया है, FILE_NAME() फ़ंक्शन आपको sys.database_files . को क्वेरी करने से बचाता है या sys.master_files विचार। अगर हमारे पास FILE_NAME() नहीं होता फ़ंक्शन, हमें शायद कुछ ऐसा करना होगा:

SELECT name
FROM sys.database_files
WHERE file_id = 2;

परिणाम:

+-----------+
| name      |
|-----------|
| Music_log |
+-----------+

उदाहरण 5 - sys.master_files का उपयोग करना

अगर हमने sys.master_files . का उपयोग किया है , हमें कौन सा डेटाबेस निर्दिष्ट करने के लिए कुछ कोड जोड़ना होगा:

SELECT name 
FROM sys.master_files
WHERE file_id = 2
AND database_id = DB_ID();

परिणाम:

+-----------+
| name      |
|-----------|
| Music_log |
+-----------+

इस दृष्टि से, यदि आप डेटाबेस आईडी निर्दिष्ट नहीं करते हैं, तो आपको सभी डेटाबेस से परिणाम प्राप्त होंगे। इसलिए मैं निर्दिष्ट करता हूं कि कौन सा डेटाबेस WHERE . में है खंड। इस मामले में मैं DB_ID() . का उपयोग करता हूं वर्तमान डेटाबेस का नाम प्राप्त करने के लिए कार्य करें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बेहतर प्रदर्शन ट्यूनिंग के लिए 11 SQL सर्वर अनुक्रमणिका सर्वोत्तम अभ्यास

  2. ORDER BY क्लॉज के साथ एक दृश्य बनाएं

  3. SQL सर्वर में एक स्ट्रिंग के बाएँ या दाएँ से वर्णों की एक निश्चित संख्या का चयन कैसे करें

  4. क्या आप सही डेटाबेस प्रदर्शन निगरानी उपकरण का उपयोग कर रहे हैं?

  5. CTE कर्सर/व्युत्पन्न तालिका/उपश्रेणियों/अस्थायी तालिका आदि से बेहतर क्यों है?