Rumah > pangkalan data > tutorial mysql > Mengapa Nvarchar(Max) dalam T-SQL Memenggal kepada 4000 Aksara?

Mengapa Nvarchar(Max) dalam T-SQL Memenggal kepada 4000 Aksara?

Mary-Kate Olsen
Lepaskan: 2024-12-31 18:12:10
asal
923 orang telah melayarinya

Why Does Nvarchar(Max) in T-SQL Truncate to 4000 Characters?

Pemangkasan dalam Nvarchar(Max) kepada 4000 Aksara dalam TSQL

Isu ini timbul apabila cuba menyimpan sebahagian besar teks dalam pembolehubah yang diisytiharkan sebagai Nvarchar(Max) dalam TSQL. Anehnya, pembolehubah hanya memuatkan 4000 aksara dan bukannya 8000 yang dijangkakan.

Penjelasan terletak pada sifat penetapan jenis data dalam TSQL. Mengisytiharkan pembolehubah sebagai Nvarchar(Max) tidak secara automatik memberikan atribut Max. Sebaliknya, pembolehubah pada mulanya bertindak sebagai koleksi pemalar rentetan yang lebih kecil (kurang daripada 4000 aksara). Apabila pemalar ini disatukan bersama, pembolehubah @SQL1 yang terhasil masih mempunyai had aksara 4000.

Untuk menyelesaikan isu ini, pastikan bahagian kanan penyataan tugasan untuk @SQL1 sudah pun Nvarchar( Maks) pembolehubah. Ini akan menjamin bahawa nilai yang terhasil disimpan dengan had aksara maksimum yang dibenarkan.

Sebagai contoh, kod berikut akan menetapkan jenis data Nvarchar(Max) dengan betul kepada @SQL1 dari awal:

SET @SQL1 = NVARCHAR(Max)
SET @SQL1 = @SQL1 + 'SELECT DISTINCT VenueInfo.VenueID, VenueInfo.VenueName...
Salin selepas log masuk

Pendekatan ini menghalang gelagat pembahagian integer, di mana jenis data disimpulkan berdasarkan keutamaan pengendali. Dalam kes ini, keutamaan tugasan sentiasa terakhir, serupa dengan bahasa pengaturcaraan lain. Oleh itu, tugasan di atas menganggap keseluruhan rentetan sebagai Nvarchar(Max) dari awal lagi.

Atas ialah kandungan terperinci Mengapa Nvarchar(Max) dalam T-SQL Memenggal kepada 4000 Aksara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan