คำถามที่ 1: ตัวละคร 8000 ตัวมีบทบาทอย่างไรและฉันควรทราบได้อย่างไร
การตั้งค่า n ถึง 8000 ทำให้มีตัวละคร 8000 ตัว คุณต้องระวังการอ้างอิงPrecision, Scale และ Length (Transact-SQL)เกี่ยวกับ char, nchar, nvarchar และ varchar ในทางตรงกันข้ามการตั้งค่า n เป็นสูงสุด (ไม่มีเครื่องหมายคำพูด) ทำให้ SQL Server เก็บ (และส่งคืน) จำนวนไบต์สูงสุด (ตามที่ระบุไว้ในเครื่องหมายคำพูดของคุณ)
คำถามที่ 2: ข้อความค้นหา. dat สุทธิไปยังคอลัมน์นี้จะแสดงผลลัพธ์แบบเต็มด้วยอักขระ 100 000+ ตัวเสมอหรือไม่
นี่เป็นคำถาม. Net (ไม่ใช่เซิร์ฟเวอร์ SQL) แต่ตัวแบ่งข้อมูล. Net เรียกกระแสข้อมูลเป็นไบต์ ไบต์ไม่ใช่อักขระและ SQL Server ส่งคืนไบต์ (ไม่ใช่อักขระ) ถ้า n ถูกตั้งค่าเป็น 8000 และชนิดข้อมูลคือ nvarchar, SQL Server จะส่งกลับได้สูงถึง 8000 ไบต์ซึ่งตัวกระจายข้อมูล. Net สามารถตีความได้ว่าเป็นอักขระ Unicode 4000 ตัว ถ้า n ถูกตั้งค่าเป็น 8000 และชนิดข้อมูลคือ varchar, SQL Server จะส่งกลับได้สูงสุด 8000 ไบต์ซึ่งตัวจัดเก็บข้อมูล. Net สามารถแปลความหมายได้สูงสุด 8000 ANSI ตัวอักษร ถ้า n ถูกตั้งค่าเป็น max และชนิดข้อมูลคือ nvarchar, SQL Server จะส่งกลับค่าสูงสุด 2 ^ 31-1 ไบต์ซึ่งตัวแบ่งข้อมูล. Net สามารถตีความได้ถึง (2 ^ 31-1) / 2 ตัวอักษร ถ้า n ถูกตั้งค่าเป็น max และชนิดข้อมูลคือ varchar, SQL Server จะส่งกลับค่าสูงสุด 2 ^ 31-1 ไบต์ซึ่งตัวจัดเก็บข้อมูล. Net สามารถแปลความหมายได้ถึง 2 ^ 31-1 อักขระ ANSI
หากคุณเลือกใช้ char หรือ varchar (แทนที่จะเป็น nchar หรือ nvarchar) เพราะพวกเขาสามารถเก็บ "ตัวอักษร" ได้มากขึ้น (แม่นยำยิ่งขึ้น: ไบต์) คุณต้องระวังว่าอักขระ Unicode จำนวนมากไม่มีอักขระ ANSI ที่เทียบเท่ากันดังนั้นส่วนใหญ่ของเรา ผู้ใช้ทั่วโลกจะไม่สามารถเห็นอักขระที่แปลเป็นภาษาท้องถิ่น / ในแอปของคุณ)
varchar(max)
ครั้งหนึ่งเคยถูกเรียกใช้text
และถือเป็นประเภทข้อมูลอื่น