หากคุณกำลังเพิ่มเป็นvarchar(100 - 8000)
(เช่นสิ่งอื่นที่ไม่ใช่varchar(max)
) และคุณกำลังทำสิ่งนี้ผ่าน TSQL มากกว่า SSMS GUI
ALTER TABLE YourTable ALTER COLUMN YourCol varchar(200) [NOT] NULL
และไม่เปลี่ยนค่าความไร้ค่าของคอลัมน์จากNULL
เป็นNOT NULL
(ซึ่งจะล็อกตารางในขณะที่แถวทั้งหมดได้รับการตรวจสอบความถูกต้องและอาจเขียนถึง ) หรือจาก NOT NULL
เป็นเป็นNULL
ในบางกรณีนี่เป็นข้อมูลเมตาด่วนที่เปลี่ยนแปลงเท่านั้น อาจต้องรอการSCH-M
ล็อกบนโต๊ะ แต่เมื่อได้รับแล้วการเปลี่ยนแปลงนั้นจะเกิดขึ้นทันที
ข้อแม้หนึ่งที่ต้องระวังคือในระหว่างที่รอการSCH-M
ล็อกการสืบค้นอื่น ๆจะถูกบล็อกแทนที่จะข้ามคิวล่วงหน้าดังนั้นคุณอาจต้องการพิจารณาเพิ่มคำสั่งSET LOCK_TIMEOUT
แรก
ยังให้แน่ใจว่าในALTER TABLE
คำสั่งที่คุณระบุอย่างชัดเจนว่าเป็นรัฐที่คอลัมน์เดิมเป็นอย่างอื่นคอลัมน์จะมีการเปลี่ยนแปลงที่จะอนุญาตให้NOT NULL
NULL