Generando cadenas grandes para datos de prueba

12

Recientemente intenté crear algunas cadenas grandes que contienen datos de prueba genéricos para una pregunta aquí . Parece que solía saber una forma de multiplicar una cadena. Sin embargo, ya no puedo recordar la sintaxis.

Estoy buscando algo como:

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

Para llegar a "Aaaaaaaaaaaaaaaha!" (Bueno, mucho más, por supuesto).

¿Es esto posible en T-SQL? (¿O estoy pensando en algún otro idioma?) Además, ¿existen otras técnicas para generar cadenas grandes?

Ricardo
fuente

Respuestas:

19

Puedes usar REPLICATE:

SELECT 'A' + REPLICATE('a', 1000) + 'ha!';
Aaron Bertrand
fuente
3
Tenga en cuenta que tendrá que proporcionar un carácter de entrada (MÁX) para generar cadenas de más de 8060 caracteres: SELECCIONE REPLICAR (CAST ('a' AS varchar (MAX)), 15000). Asegúrese de lanzarlo a nvarchar (MAX) si es necesario.
Mark S. Rasmussen
1
Gracias Mark También hay otros problemas potenciales REPLICATE, dependiendo de cómo Richard lo usará (por ejemplo, puede comportarse de manera diferente cuando se usa la longitud de varchar frente a char), razón por la cual conecté la REPLICATEpalabra clave para señalar la documentación, en lugar de intentar regurgite todas las posibles trampas de la documentación aquí.
Aaron Bertrand