REPLICATE
mengembalikan tipe input terlepas dari penugasan selanjutnya. Ini menjengkelkan, tetapi untuk menghindari pemotongan senyap, coba:
SET @x = REPLICATE(CONVERT(VARCHAR(MAX), 'a'), 10000);
Ini karena SQL Server melakukan REPLICATE
operasi sebelum mempertimbangkan apa yang Anda tetapkan atau berapa banyak karakter yang Anda coba kembangkan. Itu hanya peduli tentang ekspresi input untuk menentukan apa yang harus dikembalikan, dan jika inputnya bukan tipe maksimal, ia menganggap itu dimaksudkan untuk muat dalam 8.000 byte. Ini dijelaskan di Buku Daring
: