我已经宣布了一个表,并对其中一个列进行了约束。由于无知(或者可能不愿意)改变桌子,我是这样做的。
drop table Test
create table Test(
Id bigint primary key identity(1000,1),
TypeId bigint not null foreign key references TestTypes(Id),
StringValue nvarchar(100) null)
现在,愚蠢的服务器不允许我删除表...
我试过点击GUI。那里没有运气。我尝试通过 ALTER 添加和删除新约束。无济于事。我试着用限制条件查看表格。它是空的。
所以,问题是两个人。
答案 0 :(得分:1)
您可以查询system catalog views以查找名称,并使用该名称来删除约束。
此代码删除表TypeId
Test
上的外键约束
declare @n varchar(max) = 'alter table Test drop '
select @n = @n + fk.name
from sys.foreign_keys fk
inner join sys.columns c on fk.parent_object_id = c.object_id
inner join sys.tables t on t.object_id = c.object_id
where c.name = 'TypeId' and t.name = 'Test'
exec (@n)