gpt4 book ai didi

sql-server - SQL Server Mgmt Studio 搞乱了我的数据库!

转载 作者:行者123 更新时间:2023-12-03 16:35:34 25 4
gpt4 key购买 nike

这实际上毁了我的一天。我有更多的表,它们之间有许多 FK 关系。其中一个表(我们称之为表 A)有一个计算列,该列是通过带有模式绑定(bind)的 UDF 计算的,并且也是全文索引的。

如果我编辑 任何 table (我们称之为表 B)以任何方式与具有全文索引计算列(表 A)的表相关(例如通过 FK),我保存它,会发生以下情况:

  • 保存对表(表 B)的更改
  • 我收到错误:“列 'abcd' 没有全文索引。”关于我什至没有编辑的表 A,然后“用户从保存对话框中取消”
  • 与表 B 中的所有表的所有 FK 关系均已删除

  • 这到底是怎么回事???有人可以向我解释这是怎么发生的吗?

    最佳答案

    我遇到过同样的问题。正如 Will A 所说,管理工作室将执行以下步骤来更新表及其外键:

  • 创建一个名为 temp_
  • 的新表
  • 将旧表中的内容复制到新表中
  • 删除所有约束、索引和外键
  • 丢弃旧表
  • 将新表重命名为 = 旧表
  • 重新创建外键、索引和约束

  • 我的前 3 个顺序可能错误,但你明白了。
    就我而言,我丢失了整个表,而不仅仅是外键。就我个人而言,我不喜欢它这样做的方式,因为必须在包含大量数据的表上重新创建索引可能非常耗时。如果是一个很小的变化,我通常会在 T-SQL 中自己做。

    在执行之前检查更改脚本,确保它看起来合理。

    @OMGPonies,如果表中有数据,为什么不能删除外键?当然可以。在包含数据的表上创建外键只有限制,但前提是它打破了约束。但是,即使在创建 key 时使用 WITH NOCHECK 选项也可以避免这种情况。是的,我知道当您尝试更新损坏的结果集时它会中断。

    关于sql-server - SQL Server Mgmt Studio 搞乱了我的数据库!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3224011/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com