Gerando cadeias grandes para dados de teste

12

Recentemente, eu estava tentando criar algumas seqüências grandes contendo dados de teste genéricos para uma pergunta aqui . Parece que eu conhecia uma maneira de multiplicar uma string. No entanto, não consigo mais lembrar a sintaxe.

Estou procurando algo como:

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

Para criar "Aaaaaaaaaaaaaaaha!" (Bem, muito mais, é claro.)

Isso é possível no T-SQL? (Ou estou pensando em outro idioma?) Além disso, existem outras técnicas para gerar grandes seqüências de caracteres?

Richard
fonte

Respostas:

19

Você pode usar REPLICATE:

SELECT 'A' + REPLICATE('a', 1000) + 'ha!';
Aaron Bertrand
fonte
2
Observe que você precisará fornecer um caractere de entrada (MAX) para gerar cadeias maiores que 8060 caracteres: SELECT REPLICATE (CAST ('a' AS varchar (MAX)), 15000). Certifique-se de convertê-lo para nvarchar (MAX), se necessário.
Mark S. Rasmussen
1
Obrigado Mark. Também existem outros problemas em potencial REPLICATE, dependendo de como Richard o usará (por exemplo, ele pode se comportar de maneira diferente ao usar comprimento de varchar x char), e é por isso que vinculei a REPLICATEpalavra-chave a quente para apontar para a documentação, em vez de tentar regurgitar todas as possíveis dicas da documentação aqui.
Aaron Bertrand