Generieren großer Zeichenfolgen für Testdaten

12

Ich habe kürzlich versucht, einige große Zeichenfolgen mit allgemeinen Testdaten für eine Frage hier zu erstellen . Es scheint, dass ich eine Möglichkeit kannte, eine Zeichenkette zu multiplizieren. Ich kann mich jedoch nicht mehr an die Syntax erinnern.

Ich suche nach etwas wie:

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

"Aaaaaaaaaaaaaaaaaha!" (Na ja, natürlich viel länger.)

Ist das in T-SQL möglich? (Oder denke ich an eine andere Sprache?) Gibt es auch andere Techniken, um große Zeichenfolgen zu generieren?

Richard
quelle

Antworten:

19

Sie können verwenden REPLICATE:

SELECT 'A' + REPLICATE('a', 1000) + 'ha!';
Aaron Bertrand
quelle
2
Beachten Sie, dass Sie ein (MAX) -Eingabezeichen angeben müssen, um Zeichenfolgen mit mehr als 8060 Zeichen zu generieren: SELECT REPLICATE (CAST ('a' AS varchar (MAX)), 15000). Stellen Sie sicher, dass Sie es bei Bedarf in nvarchar (MAX) umwandeln.
Mark S. Rasmussen
1
Danke Markus. Es gibt auch andere potenzielle Probleme REPLICATE, je nachdem, wie Richard es verwendet (z. B. kann es sich anders verhalten, wenn die Länge von varchar vs. char verwendet wird). Deshalb habe ich das REPLICATESchlüsselwort mit einem Hotlink versehen , um auf die Dokumentation zu verweisen, anstatt es zu versuchen Erbrechen Sie alle potenziellen Fallstricke aus der Dokumentation hier.
Aaron Bertrand