我正在使用 DBCC CLONEDATABASE 创建没有数据的数据库副本。有许多数据库无法克隆。错误信息是:
无法在具有唯一索引“clst”的对象“sys.sysschobjs”中插入重复的键行。重复的键值为 (565577053)。
它始终是三个 ID 之一:245575913、565577053、885578193。这三个 ID 始终是克隆失败的数据库中用户定义表类型的 object_id。我的大多数数据库都有用户定义的表类型,但有些会克隆,有些则不会。在模型数据库中,其中两个 ID 与内部表sys.plan_persist_context_settings
&相关sys.plan_persist_query_hints
。第三个在 model.sys.objects 中不匹配。
我见过其他博客提到删除模型中的对象。模型数据库没有任何用户代码,我在使用 DAC 登录时无法删除这些内部表。数据库最初是在 SQL Server 2016 Std 中创建的,实例已升级到 2019 Std CU17。数据库也恢复到沙盒服务器 2019 Std CU17。这就是克隆失败的地方。在升级之前(生产和沙箱一起升级),只有 2 个数据库无法克隆,我现在有 10 个!
不确定它是否相关,但 sys.table_types 中的表类型是 dbo.TableType,与 type_table_object_id 匹配。在 sys.objects 中,它是 sys.TT_TableType_34C8D9D1,is_ms_shipped 设置为 1。它们被创建为 dbo.TableType。
任何帮助表示赞赏
我想选择过去 15 分钟内的数据,例如:
在 12.02 我想要从 11:45 到 12:00 的行
在 12.09 我仍然想要从 11:45 到 12:00 的行
在 12.18 我想要从 12:00 到 12:15 的行
数据以datetime2格式存储,我使用的是2019标准版。感谢任何帮助让我开始。规范稍后可能会更改(例如,10 分钟而不是 15 分钟),但我希望能够自己解决这个问题。
谢谢