ใน Microsoft SQL Server ฉันรู้แบบสอบถามเพื่อตรวจสอบว่ามีข้อ จำกัด เริ่มต้นสำหรับคอลัมน์และวางข้อ จำกัด เริ่มต้นคือ:
IF EXISTS(SELECT * FROM sysconstraints
WHERE id=OBJECT_ID('SomeTable')
AND COL_NAME(id,colid)='ColName'
AND OBJECTPROPERTY(constid, 'IsDefaultCnst')=1)
ALTER TABLE SomeTable DROP CONSTRAINT DF_SomeTable_ColName
แต่เนื่องจาก typo ในรุ่นก่อนหน้าของฐานข้อมูลชื่อของข้อ จำกัด ที่อาจจะหรือDF_SomeTable_ColName
DF_SmoeTable_ColName
ฉันจะลบข้อ จำกัด เริ่มต้นโดยไม่มีข้อผิดพลาด SQL ได้อย่างไร ชื่อข้อ จำกัด ที่เป็นค่าเริ่มต้นจะไม่แสดงในตาราง INFORMATION_SCHEMA ซึ่งทำให้สิ่งต่าง ๆ มีความซับซ้อนยิ่งขึ้น
ดังนั้นบางอย่างเช่น 'ลบข้อ จำกัด เริ่มต้นในตาราง / คอลัมน์นี้' หรือ 'ลบDF_SmoeTable_ColName
' แต่อย่าให้ข้อผิดพลาดใด ๆ หากไม่สามารถหาได้