加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server:drop table cascade等效?

发布时间:2020-12-12 16:14:00 所属栏目:MsSql教程 来源:网络整理
导读:在oracle中,要删除所有的表和约束,你可以输入类似的东西 DROP TABLE myTable CASCADE CONSTRAINTS PURGE; 这将完全删除表及其依赖关系.什么是SQL Server等效? 解决方法 我不相信SQL有一个类似优雅的解决方案.您必须首先删除任何相关的约束,然后才能删除表.
在oracle中,要删除所有的表和约束,你可以输入类似的东西
DROP TABLE myTable CASCADE CONSTRAINTS PURGE;

这将完全删除表及其依赖关系.什么是SQL Server等效?

解决方法

我不相信SQL有一个类似优雅的解决方案.您必须首先删除任何相关的约束,然后才能删除表.

幸运的是,这些都存储在信息模式中,您可以访问它来获取您的打包列表.

这个博文应该能够让你得到你所需要的:
http://weblogs.asp.net/jgalloway/archive/2006/04/12/442616.aspx

-- t-sql scriptlet to drop all constraints on a table
DECLARE @database nvarchar(50)
DECLARE @table nvarchar(50)

set @database = 'DatabaseName'
set @table = 'TableName'

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读