SS091103 - drop colum with check default

Modified on 2009/11/23 12:07 by ninefyi — Categorized as: SQL Server

สวัสดีครับ

วันนี้ผมขอนำเสนอวิธีการ ลบ column ออกจาก table ในกรณีที่เราไม่ทราบชื่อของ default (หากมีการสร้าง) แล้วเกิดมีก็ไม่อยากจะเขียนอีก ดังนั้น T-SQL สามารถช่วยท่านได้ครับ

ลองดูนะครับ

DECLARE @table_name NVARCHAR(256)
DECLARE @col_name NVARCHAR(256)
DECLARE @Command NVARCHAR(1000)

SET @table_name = N'Customers' --ใส่ชื่อตาราง
SET @col_name = N'FirstName' --ใส่ชื่อฟิลด์ที่ต้องการจะลบออก

SELECT  @Command = 'ALTER TABLE ' + @table_name + ' drop constraint ' + d.name
FROM    sys.tables t
        JOIN sys.default_constraints d ON d.parent_object_id = t.object_id
        JOIN sys.columns c ON c.object_id = t.object_id
                              AND c.column_id = d.parent_column_id
WHERE   t.name = @table_name
        AND c.name = @col_name

IF @Command IS NOT NULL 
    EXECUTE(@Command)

SET @Command = 'ALTER TABLE ' + @table_name + ' DROP COLUMN ' + @col_name 

EXECUTE(@Command)