SQL SERVERでDEFAULT等、制約付きのカラムを削除する

DEFAULT制約等が付いていると、そのままカラムを削除出来ない
まずは制約を削除してからカラムを削除しなければならない
制約をSQLで削除するのは少し手間がかかる

DECLARE @TABLE_NAME NVARCHAR(256)
DECLARE @COLUMN_NAME NVARCHAR(256)
DECLARE @TABLE_ID INTEGER 
DECLARE @COLUMN_ID INTEGER 
DECLARE @CONSTRAINT_NAME NVARCHAR(256)
SET @TABLE_NAME = '削除したいテーブル'
SET @COLUMN_NAME = '削除したいカラム'

--削除したいテーブルのシステムidを取得する
SELECT @TABLE_ID = id FROM sys.sysobjects 
WHERE xtype = 'U' AND name = @TABLE_NAME

--削除したいカラムのシステムidを取得する
SELECT @COLUMN_ID = column_id FROM sys.columns 
WHERE object_id = @TABLE_ID AND name = @COLUMN_NAME

--削除したい制約名を取得する
SELECT @CONSTRAINT_NAME = name FROM sys.sysobjects 
WHERE id = 
 (SELECT constid FROM sys.sysconstraints 
  WHERE id = @TABLE_ID AND colid = @COLUMN_ID)

--制約を削除する
EXEC('ALTER TABLE '+ @TABLE_NAME + ' DROP CONSTRAINT ' + @CONSTRAINT_NAME)

--カラムを削除する
ALTER TABLE 削除したいテーブル DROP COLUMN 削除したいカラム

制約を削除する時、変数でそのまま実行出来ない
EXECを使い動的にSQL生成して実行しないといけない