如何删除约束:
如下创建表:
- SQL code
create table dbo.TRecord( id int identity(1,1) primary key, RecordString nvarchar(100) not null unique --unique表示不能重复键:)
- SQL code
表里有个字段:RecordString 有unique约束 --unique表示不能重复键:现在:我想删了约束 ,却不知如何删除: 书上说:alter 表名 drop constraint 约束名 --很明显,创建表时 是一次性创建约束的,没有名约束啊。--如果,drop了表 再新建另一个表,不行啊,表中有数据,不能drop 啊。
[解决办法]
创建的时候不自己制定约束名字,那系统就自动给你生成一个。
你要删除可以先查询出来。
- SQL code
select * from sys.indexes where object_id=object_id('TRecord')
[解决办法]
[解决办法]
create table dbo.TRecord
(
id int identity(1,1) primary key,
RecordString nvarchar(100) not null unique --unique表示不能重复键:
)
--查看唯一约束名
SELECT Name FROM sysobjects WHERE parent_obj=OBJECT_ID('dbo.TRecord') AND xtype='UQ'
ALTER TABLE dbo.TRecord DROP CONSTRAINT 约束名
[解决办法]
[解决办法]
[解决办法]
- SQL code
--查到例名:declare @triggerName nvarchar(200);--select * from sys.indexes where object_id=object_id('TRecord') select @triggerName= Name from sysobjects where( parent_obj=OBJECT_ID('dbo.TRecord') AND xtype='UQ');EXEC('alter table dbo.TRecord drop CONSTRAINT' +@triggerName);
[解决办法]
[解决办法]
--查看table表所有的约束
exec sp_helpconstraint 'table'
--查看table表所有的索引
exec sp_helpindex 'table'