Rumah >pangkalan data >tutorial mysql >Mengapa pembolehubah NVARCHAR(MAX) saya dalam T-SQL hanya memegang 4000 aksara?
Dalam pertanyaan SQL anda, anda telah mengisytiharkan pembolehubah @SQL1 sebagai NVARCHAR(Max) tetapi menghadapi isu di mana ia hanya menyimpan 4000 aksara. Ini berlaku kerana tingkah laku halus dalam TSQL mengenai penukaran automatik jenis data semasa penyatuan.
Memahami Isu:
Penyelesaian:
Untuk memastikan @SQL1 menjadi NVARCHAR(Max), anda perlu memastikan bahawa data yang anda cantumkan di sebelah kanan -sebelah tangan juga NVARCHAR(Maks). Satu cara untuk melakukan ini ialah dengan menghantar secara eksplisit sebarang pemalar atau pembolehubah kepada NVARCHAR(Maks) sebelum penyatuan.
Sebagai contoh, kod berikut akan menyebabkan @SQL1 menjadi NVARCHAR(Max):
SET @SQL1 = N''; SET @SQL1 = @SQL1 + CAST('SELECT DISTINCT Venue...,' AS NVARCHAR(MAX));
Ini memastikan bahawa pernyataan SELECT digabungkan dengan rentetan yang mempunyai jenis data NVARCHAR(Max), memaksa hasilnya juga NVARCHAR(Maks).
Atas ialah kandungan terperinci Mengapa pembolehubah NVARCHAR(MAX) saya dalam T-SQL hanya memegang 4000 aksara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!