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?

Respostas:


19

Você pode usar REPLICATE:

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.