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

FILE_ID() vs FILE_IDEX() di SQL Server:Apa Bedanya?

Di SQL Server, Anda dapat menggunakan FILE_IDEX() berfungsi untuk mengembalikan ID dari file database yang diberikan. Anda juga dapat menggunakan FILE_ID() berfungsi untuk melakukan hal yang sama. Kedua fungsi tersebut memiliki tujuan yang hampir sama, jadi mengapa T-SQL memiliki kedua fungsi tersebut?

Tampaknya FILE_IDEX() adalah pengganti FILE_ID() , dan mendukung rentang ID file yang lebih besar. Microsoft sekarang merekomendasikan untuk tidak menggunakan FILE_ID() , karena dalam mode pemeliharaan dan dapat dihapus di versi SQL Server yang akan datang.

Jadi jika Anda mencari jawaban cepat untuk fungsi mana yang akan digunakan, gunakan FILE_IDEX() .

Tetapi jika Anda tertarik dengan perbedaan antara kedua fungsi ini, baca terus.

Perbedaan

Perbedaan antara FILE_IDEX() dan FILE_ID() ada dalam tipe pengembalian.

  • FILE_IDEX() mengembalikan int .
  • FILE_ID() mengembalikan kecil .

Fakta bahwa FILE_IDEX() mengembalikan integer berarti dapat menangani ID file yang lebih besar. Misalnya, dapat menangani katalog teks lengkap.

kecil tipe data hanya dapat menangani nilai hingga 32.767, sedangkan int dapat menangani nilai hingga 2.147.483.647. Di SQL Server, nomor identifikasi file yang ditetapkan ke katalog teks lengkap melebihi 32.767, dan oleh karena itu, FILE_ID() tidak mendukung katalog teks lengkap.

Contoh

Berikut adalah contoh cepat untuk menunjukkan batasan FILE_ID() jika dibandingkan dengan FILE_IDEX() :

USE WideWorldImportersDW;
SELECT 
  FILE_IDEX('WWIDW_InMemory_Data_1') AS [FILE_IDEX()],
  FILE_ID('WWIDW_InMemory_Data_1') AS [FILE_ID()];

Hasil:

+---------------+-------------+
| FILE_IDEX()   | FILE_ID()   |
|---------------+-------------|
| 65537         | NULL        |
+---------------+-------------+

Dalam hal ini, ID file melebihi 32.767 dan karenanya FILE_ID() mengembalikan NULL .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. T-SQL:Memilih Kolom Berdasarkan MAX (Kolom Lainnya)

  2. Mengapa ISNUMERIC('.') mengembalikan 1?

  3. Database Sistem SQL Server – Pemeliharaan Tempdb

  4. Memilih Prosesor untuk SQL Server 2012

  5. Kode untuk memvalidasi Skrip SQL