Generowanie dużych ciągów dla danych testowych


12

Niedawno próbowałem utworzyć kilka dużych ciągów zawierających ogólne dane testowe na pytanie tutaj . Wygląda na to, że kiedyś znałem sposób na pomnożenie łańcucha. Jednak nie pamiętam już składni.

Szukam czegoś takiego:

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

Wymyślić „Aaaaaaaaaaaaaaaha!” (Cóż, znacznie dłużej, oczywiście.)

Czy jest to możliwe w T-SQL? (A może myślę o innym języku?) Czy są też inne techniki generowania dużych ciągów?

Odpowiedzi:


19

Możesz użyć REPLICATE:

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

3
Pamiętaj, że musisz podać (MAX) znak wejściowy, aby wygenerować ciągi większe niż 8060 znaków: WYBIERZ REPLIKACJĘ (CAST ('a' AS varchar (MAX)), 15000). W razie potrzeby pamiętaj, aby przesłać go do nvarchar (MAX).
Mark S. Rasmussen

1
Dzięki Mark. Są też inne potencjalne problemy REPLICATE, w zależności od tego, jak Richard go użyje (np. Może zachowywać się inaczej przy użyciu długości varchar vs. char), dlatego właśnie połączyłem REPLICATEsłowo kluczowe, aby wskazać dokumentację, zamiast próbować cofnij wszystkie potencjalne problemy z dokumentacji tutaj.
Aaron Bertrand
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.