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?

Respuestas:


19

Puedes usar REPLICATE:

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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.