การสร้างสตริงขนาดใหญ่สำหรับข้อมูลการทดสอบ


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) หากจำเป็น
Mark S. Rasmussen

1
ขอบคุณมาร์ค มีปัญหาอื่นที่อาจเกิดขึ้นด้วยREPLICATEเช่นกันขึ้นอยู่กับว่า Richard จะใช้มันอย่างไร (เช่นมันสามารถทำงานได้แตกต่างกันเมื่อใช้ความยาวของ varchar vs. char) ซึ่งเป็นสาเหตุที่ฉันเชื่อมโยงREPLICATEคำหลักเพื่อชี้ไปที่เอกสารแทนที่จะพยายาม ไหลกลับ gotchas ที่เป็นไปได้ทั้งหมดจากเอกสารที่นี่
Aaron Bertrand
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.