我的问题是在Oracle中我们可以使用drop table table_name cascade constraints
删除引用的表对象。如何在SQL Server中实现相同的功能?
答案 0 :(得分:0)
据我所知,MsSql中没有一个命令,但您可以使用INFORMATION_SCHEMA和动态SQL。
这样的事情:
DECLARE @database nvarchar(50)
DECLARE @table nvarchar(50)
set @database = 'MyDatabase'
set @table = 'MyTable'
DECLARE @sql nvarchar(255)
WHILE EXISTS(select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where constraint_catalog = @database and table_name = @table)
BEGIN
select @sql = 'ALTER TABLE ' + @table + ' DROP CONSTRAINT ' + CONSTRAINT_NAME
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
where constraint_catalog = @database and
table_name = @table
exec sp_executesql @sql
END
答案 1 :(得分:0)
可以选择让Management Studio生成一个脚本,以更改/删除对依赖对象的所有约束。