Генерация больших строк для тестовых данных

12

Недавно я пытался создать несколько больших строк, содержащих общие тестовые данные для вопроса здесь . Кажется, я знал способ умножения строки. Тем не менее, я больше не могу вспомнить синтаксис.

Я ищу что-то вроде:

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

Чтобы придумать "Aaaaaaaaaaaaaaaha!" (Ну, намного дольше, конечно.)

Возможно ли это в T-SQL? (Или я думаю о каком-то другом языке?) Кроме того, есть ли другие методы для генерации больших строк?

Ричард
источник

Ответы:

19

Вы можете использовать REPLICATE:

SELECT 'A' + REPLICATE('a', 1000) + 'ha!';
Аарон Бертран
источник
3
Обратите внимание, что вам потребуется предоставить (MAX) входной символ для генерации строк длиной более 8060 символов: SELECT REPLICATE (CAST ('a' AS varchar (MAX)), 15000). Обязательно приведите его к nvarchar (MAX) при необходимости.
Марк С. Расмуссен
1
Спасибо Марк. Есть и другие потенциальные проблемы REPLICATE, в зависимости от того, как Ричард будет использовать его (например, он может вести себя по-разному при использовании длины varchar и char), поэтому я сделал горячую ссылку на REPLICATEключевое слово, чтобы указать на документацию, вместо того, чтобы пытаться извергнуть все потенциальные ошибки из документации здесь.
Аарон Бертран