Menghasilkan string besar untuk data uji


12

Saya baru-baru ini mencoba membuat beberapa string besar yang berisi data uji generik untuk pertanyaan di sini . Tampaknya saya dulu tahu cara untuk menggandakan string. Namun, saya tidak bisa lagi mengingat sintaksnya.

Saya mencari sesuatu seperti:

SELECT 'A' + ('a' * 1000) + 'ha!'

Untuk datang dengan "Aaaaaaaaaaaaaaaha!" (Yah, lebih lama, tentu saja.)

Apakah ini mungkin di T-SQL? (Atau apakah saya sedang memikirkan bahasa lain?) Juga, apakah ada teknik lain untuk menghasilkan string besar?

Jawaban:


19

Anda bisa menggunakan REPLICATE:

SELECT 'A' + REPLICATE('a', 1000) + 'ha!';

3
Perhatikan bahwa Anda harus memberikan karakter input (MAX) untuk menghasilkan string yang lebih besar dari 8060 karakter: SELECT REPLICATE (CAST ('a' AS varchar (MAX)), 15000). Pastikan untuk mengirimkannya ke nvarchar (MAX) jika perlu.
Mark S. Rasmussen

1
Mark terima kasih. Ada beberapa masalah potensial lainnya REPLICATEjuga, tergantung pada bagaimana Richard akan menggunakannya (misalnya, ia dapat berperilaku berbeda ketika menggunakan panjang varchar vs char), itulah sebabnya saya menautkan REPLICATEkata kunci untuk menunjuk ke dokumentasi, alih-alih mencoba regurgitasi semua gotoka potensial dari dokumentasi di sini.
Aaron Bertrand
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.