0

我的问题是,在 Oracle 中,我们可以使用drop table table_name cascade constraints删除引用的表对象。如何在 SQL Server 中实现相同的功能?

4

2 回答 2

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
于 2011-06-01T06:05:11.300 回答
0

有一个选项可以让 Management Studio 生成一个脚本,该脚本可以更改/删除对依赖对象的所有约束。

我在这里找到了描述SQL Server drop table cascade equivalent

于 2011-08-25T14:35:47.280 回答