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?

Antworten:


19

Sie können verwenden REPLICATE:

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.