• 清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法


    如下解决了五个问题
    1. 清空数据
    2. 有外键也可以, 因为是逆向删除, 从最后一张表删除. 且使用的是delete, 因为truncate不能对有外键的表
    3. 种子问题, 如果表存在种子重设为0, 如不存在就不操作
    4. 加了事务, 中间报错, 有后悔机会
    5. 截断日志功能, 因为使用delete, 删除后日志文件会增大, 可以不使用

    原文出处:http://topic.csdn.net/u/20090816/17/EE0FA21E-8616-4236-A9CB-8C5A3D45C9D9.html 中45楼

    对于有外键约束的表,网上普遍说的方法:

    EXEC sp_MSForEachTable ' ALTER TABLE ? NOCHECK CONSTRAINT ALL ' -- NOCHECK Const

    EXEC  sp_MSForEachTable ' truncate TABLE ? '

    EXEC
       sp_MSForEachTable 
    '
    ALTER TABLE ? CHECK CONSTRAINT ALL
    '
    --
    NOCHECK Constraints
    

    是行不通的,因为
    trun cate不能对有外键的表 ,改为delete from tablename就行,但delete会激活触发器,这也是一个问题。

  • 相关阅读:
    Linux rpm命令详解
    IIS上传文件大小限制和上传时间限制
    .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
    C# Thread、ThreadPool、Task、Invoke、BeginInvoke、async、await 汇总
    iostat 命令详解
    IdentityServer4 配置负载均衡
    Rabbit RPC 代码阅读(一)
    .Wait()与.GetAwaiter()之间有什么区别
    AddTransient,AddScope和AddSingleton 有什么不同?
    微服务ServiceMesh及三种模式介绍
  • 原文地址:https://www.cnblogs.com/wqvbjhc/p/2465156.html
Copyright © 2020-2023  润新知