SQL Server:使用级联约束删除表
在 Oracle 中,DROP TABLE 语句中的“CASCADE CONSTRAINTS PURGE”选项允许删除表及其依赖约束和数据。
SQL 中的等效功能服务器无法通过单个命令使用。但是,有两种替代方法可以实现所需的结果:
使用脚本选项:
这将生成一个包含所有依赖对象的脚本,并将它们放入正确的顺序。
使用递归存储过程:
CREATE PROC DropTableCascade (@TableName nvarchar(max)) AS BEGIN IF OBJECT_ID(@TableName) IS NOT NULL BEGIN EXEC sp_MSForEachTable 'IF "{DB_NAME()}.dbo.' + name in (SELECT name FROM sysobjects WHERE type = ''U'' AND parent_id = OBJECT_ID(@TableName)) BEGIN PRINT ''Dropping table '' + ''{DB_NAME()}.dbo.'' + name PRINT ''DELETE FROM '' + ''{DB_NAME()}.dbo.'' + name + ''; DROP TABLE '' + ''{DB_NAME()}.dbo.'' + name + ''; END' DROP TABLE @TableName END END
EXEC DropTableCascade 'YourTableName'
以上是如何删除具有级联约束的 SQL Server 表?的详细内容。更多信息请关注PHP中文网其他相关文章!