Test verileri için büyük dizeler oluşturma


12

Geçenlerde burada bir soru için genel test verileri içeren bazı büyük dizeleri oluşturmaya çalışıyordu . Görünüşe göre bir stringi çarpmanın bir yolunu biliyordum. Ancak artık sözdizimini hatırlayamıyorum.

Gibi bir şey arıyorum:

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

"Aaaaaaaaaaaaaaaha!" (Elbette, çok daha uzun.)

Bu T-SQL'de mümkün mü? (Ya da başka bir dil mi düşünüyordum?) Ayrıca, büyük dizeler oluşturmak için başka teknikler var mı?

Yanıtlar:


19

Şunları kullanabilirsiniz REPLICATE:

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

3
8060 karakterden daha büyük dizeler oluşturmak için bir (MAX) giriş karakteri sağlamanız gerektiğini unutmayın: REPLICATE SEÇ (CAST ('a' AS varchar (MAX)), 15000). Gerekirse nvarchar (MAX) 'a koyduğunuzdan emin olun.
Mark S. Rasmussen

1
Teşekkürler Mark. REPLICATERichard'ın nasıl kullanacağına bağlı olarak başka potansiyel sorunlar da var (örneğin, varchar ve char uzunluğunu kullanırken farklı davranabilir), bu yüzden REPLICATEanahtar kelimeyi dokümantasyona işaret etmek yerine sıcak bağlantı kurdum buradaki belgelerden tüm potansiyel gotcha'ları yeniden düzenleyin.
Aaron Bertrand
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.