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

Apa itu DATALENGTH() di SQL Server?

Di SQL Server (dan Azure), T-SQL DATALENGTH() fungsi mengembalikan jumlah byte yang digunakan untuk mewakili ekspresi apa pun.

Misalnya:

SELECT DATALENGTH('Lit');

Hasil:

3

Dalam hal ini, ada 3 byte dalam string Lit .

Namun, ini adalah contoh sederhana. Hasilnya bisa terlihat sangat berbeda, bergantung pada tipe datanya.

Pada contoh di atas, kita melihat bahwa ada 3 byte dalam kata Lit . Ini juga terjadi persis berapa banyak karakter dalam string. Tetapi jika kita mengembalikan kata yang sama dari kolom dalam database, kita mungkin mendapatkan hasil yang berbeda. Misalnya, ini:

SELECT 
    ArtistName, 
    DATALENGTH(ArtistName) AS DataLength 
FROM Artists 
WHERE ArtistName = 'Lit';

Hasil:

ArtistName  DataLength
----------  ----------
Lit         6          

Dalam hal ini panjang datanya adalah 6.

Alasannya adalah karena, dalam database khusus ini, kolom memiliki nvarchar(255) tipe data. nvarchar tipe data adalah string unicode, yang menyimpan 2 byte per karakter (yang secara efektif menggandakan panjang data). Jika kolom telah menggunakan varchar(255) itu akan memiliki panjang data 3. Namun, jika itu  mengatakan, char(25) string akan memiliki panjang data 25.

Juga, jika sebelumnya adalah char(25) tetapi kemudian diubah menjadi varchar(255) masih memiliki panjang data 255.

Namun, dalam semua kasus, LEN() fungsi akan kembali 3.

Trailing Blank

DATALENGTH() fungsi menghitung trailing blank (misalnya spasi di akhir string, tab, carriage return, dll).

Contoh:

SELECT DATALENGTH('Lit ');

Hasil:

4

Dalam contoh ini saya hanya menambahkan spasi di akhir string. Ini adalah salah satu perbedaan antara LEN() dan DATALENGTH() .

Anda dapat melihat contoh LEN() dan DATALENGTH() berdampingan di LEN() vs DATALENGTH() .

Jenis Pengembalian

DATALENGTH() fungsi mengembalikan tipe data int , kecuali ekspresinya adalah  varchar(max)nvarchar(maks) atau varbinary(maks) , dalam hal ini ia mengembalikan besar .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nonaktifkan sementara semua batasan kunci asing

  2. Mengoptimalkan TempDB:Menghindari Kemacetan dan Masalah Kinerja

  3. Memahami Ukuran Penyimpanan 'datetime2' di SQL Server

  4. TABLESAMPLE mengembalikan jumlah baris yang salah?

  5. Jenis Kursor SQL Server - Apa itu Kursor Statis di SQL Server | Tutorial SQL Server / Tutorial TSQL