Génération de grandes chaînes pour les données de test

12

J'essayais récemment de créer de grandes chaînes contenant des données de test génériques pour une question ici . Il semble que je connaissais un moyen de multiplier une chaîne. Cependant, je ne me souviens plus de la syntaxe.

Je cherche quelque chose comme:

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

Pour trouver "Aaaaaaaaaaaaaaaha!" (Eh bien, bien plus longtemps, bien sûr.)

Est-ce possible dans T-SQL? (Ou est-ce que je pense à un autre langage?) De plus, existe-t-il d'autres techniques pour générer de grandes chaînes?

Richard
la source

Réponses:

19

Vous pouvez utiliser REPLICATE:

SELECT 'A' + REPLICATE('a', 1000) + 'ha!';
Aaron Bertrand
la source
3
Notez que vous devrez fournir un caractère d'entrée (MAX) pour générer des chaînes supérieures à 8060 caractères: SELECT REPLICATE (CAST ('a' AS varchar (MAX)), 15000). Assurez-vous de le lancer sur nvarchar (MAX) si nécessaire.
Mark S. Rasmussen
1
Merci Mark. Il existe également d'autres problèmes potentiels REPLICATE, selon la façon dont Richard l'utilisera (par exemple, il peut se comporter différemment lors de l'utilisation de la longueur de varchar vs char), c'est pourquoi j'ai lié à chaud le REPLICATEmot - clé pour pointer vers la documentation, au lieu d'essayer de régurgitez tous les pièges potentiels de la documentation ici.
Aaron Bertrand