SQL 2016 - 我有 2 个表,Foo & Bar - Bar 引用 Foo。我想将 Foo 变成一个内存优化表,但是当 Bar 引用这个时,我做不到。
由于依赖于 Foo,我也无法在内存中创建 Bar。
似乎我需要同时对两个表执行此操作 - 这是否可能无需从头开始重新创建两个表?
SQL 2016 - 我有 2 个表,Foo & Bar - Bar 引用 Foo。我想将 Foo 变成一个内存优化表,但是当 Bar 引用这个时,我做不到。
由于依赖于 Foo,我也无法在内存中创建 Bar。
似乎我需要同时对两个表执行此操作 - 这是否可能无需从头开始重新创建两个表?
正确的。如果您在迁移一张表后尝试重新创建 FK,您将得到:
迁移到内存表总是需要从头开始重新创建表。SSMS 将重命名您的旧表,创建新的内存表,从旧表加载它们,然后删除旧表。
最后,我找到了一种将外键表迁移到内存表的解决方案。为此,您需要打开包含键的基于磁盘的表、带有删除和创建选项的脚本,而不是在外键语法上添加注释而不是执行它。之后它就像普通表一样,因此,将其迁移到内存表中,它将成功迁移。然后使用 Drop and Create 选项重新打开表脚本并删除注释而不是执行它。它将在内存表中创建外键。
注意:请在处理前备份所有数据
我知道这个乏味的过程,但这是我认为的唯一方式