- 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)
SQL——指定表名和列名,删除对应的列
最新推荐文章于 2023-12-05 20:01:13 发布
本文介绍了一个用于删除数据库表中字段及其关联约束的SQL存储过程,详细阐述了如何通过查询系统对象和列来查找并删除指定字段的相关约束,并最终实现字段的删除。
1863

被折叠的 条评论
为什么被折叠?



