ต้องการเพิ่มประสบการณ์ของฉันด้วยการแปลง ฉันมีหลายtext
สาขาในรหัส Linq2SQL โบราณ นี่เป็นการอนุญาตให้text
คอลัมน์ที่อยู่ในดัชนีสร้างขึ้นมาใหม่ออนไลน์สร้างขึ้นมาใหม่ออนไลน์
ครั้งแรกที่ฉันรู้เกี่ยวกับประโยชน์หลายปี แต่การสันนิษฐานเสมอว่าการแปลงจะหมายถึงข้อความค้นหาที่น่ากลัวที่ SQL Server จะต้องสร้างตารางใหม่และคัดลอกทุกอย่างลงทำให้เว็บไซต์ของฉันแย่ลง
ฉันยังกังวลว่า Linq2SQL อาจทำให้เกิดข้อผิดพลาดหากทำการตรวจสอบประเภทคอลัมน์บางประเภท
มีความสุขที่ได้รายงานว่าคำสั่ง ALTER ส่งคืนทันที - ดังนั้นพวกเขาจึงเปลี่ยนเฉพาะข้อมูลเมตาของตารางเท่านั้น อาจมีงานออฟไลน์เกิดขึ้นเพื่อนำข้อมูลอักขระ <8000 ตัวกลับมาให้อยู่ในตาราง แต่คำสั่ง ALTER นั้นทันที
ฉันวิ่งต่อไปนี้เพื่อค้นหาคอลัมน์ทั้งหมดที่ต้องการการแปลง:
SELECT concat('ALTER TABLE dbo.[', table_name, '] ALTER COLUMN [', column_name, '] VARCHAR(MAX)'), table_name, column_name
FROM information_schema.columns where data_type = 'TEXT' order by table_name, column_name
SELECT concat('ALTER TABLE dbo.[', table_name, '] ALTER COLUMN [', column_name, '] NVARCHAR(MAX)'), table_name, column_name
FROM information_schema.columns where data_type = 'NTEXT' order by table_name, column_name
สิ่งนี้ทำให้ฉันมีรายการแบบสอบถามที่ดีซึ่งฉันเพิ่งเลือกและคัดลอกไปยังหน้าต่างใหม่ อย่างที่ฉันบอก - การทำแบบนี้เป็นแบบทันที
Linq2SQL นั้นค่อนข้างเก่าแก่ - ใช้นักออกแบบที่คุณลากตารางลงไป สถานการณ์อาจซับซ้อนกว่าสำหรับรหัส EF ก่อน แต่ฉันยังไม่ได้แก้ไขเลย