SQL——指定表名和列名,删除对应的列

来源:互联网 发布:highlight.min.js下载 编辑:程序博客网 时间:2024/05/18 23:29
Create PROCEDURE [dbo].[proc_dropColumn]   @tablename VARCHAR (30),    @columnname VARCHAR (30)AS/*功能:删除字段,同时删除约束*/   IF NOT EXISTS         (SELECT *            FROM syscolumns a INNER JOIN sysobjects b ON a.id = b.id           WHERE b.name = @tablename AND a.name = @columnname)      RETURN 0   /*查找约束*/   DECLARE @contraint   VARCHAR (50)   SET @contraint = ''   SELECT @contraint = b.name   FROM sysobjects a        INNER JOIN sysobjects b           ON a.id = b.parent_obj        INNER JOIN syscolumns c           ON b.id = c.cdefault AND c.name = @columnname   WHERE a.name = @tablename   /*执行删除*/   DECLARE @sqltext   VARCHAR (200)   IF @contraint <> ''      BEGIN         SET @sqltext = ' ALTER TABLE ' + @tablename + ' DROP CONSTRAINT ' + @contraint         EXEC (@sqltext)      END   SET @sqltext = ' ALTER TABLE ' + @tablename + ' DROP COLUMN ' + @columnname   EXEC (@sqltext)

原创粉丝点击