Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Gunakan FILE_NAME() untuk Mengembalikan Nama File Logis untuk ID File yang Diberikan di SQL Server

Di SQL Server, Anda dapat menggunakan FILE_NAME() fungsi untuk mengembalikan nama file logis dari file database yang diberikan.

Untuk melakukan ini, berikan ID file ke fungsi. Ini adalah ID yang sesuai dengan file_id kolom di sys.master_files tampilan katalog atau sys.database_files tampilan katalog. Tampilan tersebut juga berisi nama file logis, tetapi FILE_NAME() fungsi menyelamatkan Anda dari keharusan menanyakan tampilan tersebut.

Contoh 1 – Penggunaan Dasar

Berikut contoh cepat untuk ditunjukkan.

USE WideWorldImportersDW;
SELECT FILE_NAME(1) AS Result;

Hasil:

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

Contoh 2 – Lebih Banyak File

Ini contoh lain, kali ini mengembalikan tiga file.

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

Hasil:

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

Contoh 3 – Basis Data Berbeda

Dalam contoh ini saya beralih ke database lain, lalu menjalankan kueri lagi.

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

Hasil:

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

Dalam hal ini, tidak ada file dengan ID 3, jadi saya mendapatkan hasil NULL untuk kolom itu.

Contoh 4 – Menggunakan sys.database_files

Seperti disebutkan, FILE_NAME() fungsi menyelamatkan Anda dari keharusan menanyakan sys.database_files atau sys.master_files dilihat. Jika kami tidak memiliki FILE_NAME() fungsi, kita mungkin harus melakukan sesuatu seperti ini:

SELECT name
FROM sys.database_files
WHERE file_id = 2;

Hasil:

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

Contoh 5 – Menggunakan sys.master_files

Jika kita menggunakan sys.master_files , kita perlu menambahkan beberapa kode untuk menentukan database mana:

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

Hasil:

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

Dengan tampilan ini, jika Anda tidak menentukan ID database, Anda akan mendapatkan hasil dari semua database. Oleh karena itu saya tentukan database yang mana di WHERE ayat. Dalam hal ini saya menggunakan DB_ID() fungsi untuk mendapatkan nama database saat ini.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa perbedaan antara tabel temp dan variabel tabel di SQL Server?

  2. Tidak Dapat Terhubung ke Server - Kesalahan terkait jaringan atau spesifik contoh

  3. CONVERT() di SQL Server

  4. Buat Akun Email Basis Data (SSMS)

  5. Kiat untuk Mengurangi Kompleksitas SQL Server Anda