发布
社区首页 >问答首页 >SqlException:如何删除约束、删除表和恢复约束?

SqlException:如何删除约束、删除表和恢复约束?
EN

Stack Overflow用户
提问于 2015-11-05 15:35:03
回答 1查看 637关注 0票数 0

我有一个删除表中所有数据的方法,但是如果存在外键约束,这个方法就不能工作。如何检查是否存在引用约束,首先删除这些exist,然后继续删除指定表中的所有数据?

如果存在任何外键约束,则引发此异常:

“DELETE语句与引用约束冲突\”。冲突发生在数据库\\“、表\\”、列‘’。\r\n语句已终止。}

方法:

代码语言:javascript
代码运行次数:0
复制
public int DeleteFromDatabase(SqlConnection sqlConnection, string tableName)
{
    int success = 0;

    string sqlTrunc = "Delete from " + tableName;

    if (isSafeSqlConnection(sqlConnection))
    {
        using (sqlConnection)
        {
            SqlCommand cmd = new SqlCommand(sqlTrunc, sqlConnection);
            sqlConnection.Open();
            success = cmd.ExecuteNonQuery(); //<-exception when constraint exists.
            sqlConnection.Close();
        }
    }
    return success;
}

我需要知道的是,要么是删除约束、删除约束、恢复约束,要么是先删除引用的约束数据,然后继续删除表。无论哪种方式我都可以。

EN

回答 1

Stack Overflow用户

发布于 2015-11-05 15:52:34

你有几个选择:

  1. 将表设置为中数据库关系图中的级联删除。

  1. 列出表中的所有键:EXEC sp_fkeys 'MyTable',然后先删除外键表中的所有行。请参阅How can I list all foreign keys referencing a given table in SQL Server?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33548694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档