SQL存储过程之删除指定表中指定字段所有约束
来源:互联网 发布:pdf.js 使用实例 编辑:程序博客网 时间:2024/05/18 22:40
CREATE PROCEDURE dropconstraint@tb varchar(100),@fd varchar(100)ASdeclare @tbname sysname,@fdname sysname select @tbname=@tb --要处理的表名 ,@fdname=@fd --要处理的字段名--定义删除处理的语句 declare tb cursor local for --默认值约束 select sql='alter table ['+b.name+'] drop constraint ['+d.name+']' from syscolumns a join sysobjects b on a.id=b.id and a.name=@fdname and b.name=@tbname join syscomments c on a.cdefault=c.id join sysobjects d on c.id=d.id union --外键引用 select s='alter table ['+c.name+'] drop constraint ['+b.name+']' from sysforeignkeys a join sysobjects b on b.id=a.constid join sysobjects c on c.id=a.fkeyid join syscolumns d on d.id=c.id and a.fkey=d.colid and d.name=@fdname join sysobjects e on e.id=a.rkeyid and e.name=@tbname join syscolumns f on f.id=e.id and a.rkey=f.colid union --主键/唯一键/索引 select case when e.xtype in('PK','UQ') then 'alter table ['+c.name+'] drop constraint ['+e.name+']' else 'drop index ['+c.name+'].['+a.name+']' end from sysindexes a join sysindexkeys b on a.id=b.id and a.indid=b.indid join sysobjects c on b.id=c.id and c.xtype='U' and c.name=@tbname join syscolumns d on b.id=d.id and b.colid=d.colid and d.name=@fdname left join sysobjects e on e.id=object_id(a.name) where a.indid not in(0,255)--执行删除 declare @s varchar(8000) open tb fetch next from tb into @s while @@fetch_status=0 begin exec(@s) fetch next from tb into @s end close tb deallocate tb
先执行上面的SQL语句,创建存储过程,然后再执行存储过程即可,如:
--删除字段约束(表,列)exec dbo.dropconstraint 'table','Minute'exec dbo.dropconstraint 'table','Hour'exec dbo.dropconstraint 'table','Day'GO
- SQL存储过程之删除指定表中指定字段所有约束
- SQL批量删除数据表中指定字段对应的所有约束
- SQL存储过程之删除指定表中所有索引
- 删除数据库中所有表中指定的字段
- 利用存储过程删除指定表中指定列的值为指定值的数据行
- 删除指定SQL数据库所有表和存储过程
- MySQL入门--显示指定数据表的字段结构、插入指定字段的值(记录)、查看指定表中指定字段的所有记录
- MySQL入门--显示指定数据表的字段结构、插入指定字段的值(记录)、查看指定表中指定字段的所有记录
- sql删除字段中指定字符之前的字符串或者删除字段中指定字符之后的字符串
- oracle--删除表中指定字段重复值
- SQLserver 删除数据所有表和存储过程和约束
- SQLserver 删除数据所有表和存储过程和约束
- 删除链表中指定的所有元素
- 替换掉mysql数据库指定字段的所有数据的中指定字符串
- 【数据库】SQL导入CSV到表中指定部分字段
- 删除表所有的约束(系统默认名约束删除)(存储过程)
- SQL语句 - 删除表中指定列重复的纪录
- 表删除字段存储过程
- Hibernate3 实体属性的延迟加载——Hibernate深入浅出
- Xcode分析CrashLog的方法
- 关于sqlserver 分页问题
- OAUTH 简介
- c++中char *和char []的区别
- SQL存储过程之删除指定表中指定字段所有约束
- Oracle的取整和四舍五入函数——floor,round,ceil,trunc
- AndroidManifest.xml中android:configChanges的简介
- 劳累过度死亡谁来负责
- 星星之火
- csdnS2-lesson4详细
- 在linux64bit位上,做Android开发,所用脚本
- 过劳死是一种很严重的职业病
- 使用Html5 video在iPad/iPhone上碰到的几个问题