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?

Réponses:


19

Vous pouvez utiliser REPLICATE:

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.