1

我有一个用于存储带有 FILESTREAM 列的文档内容的表,另一个列是 ROWGUIDCOL 列(当您有 FILESTREAM 列时需要)。我想将此表及其现有数据迁移到一个稍微新的结构中,作为代码重构的一部分,以便 2 个不同的项目可以重用代码来管理他们的文档记录。

问题是我想重命名 ROWGUIDCOL 列,以便两个项目的文档表具有相同的列定义。

我不能使用 sp_rename,因为它不适用于 ROWGUIDCOL 列。

我无法删除现有的 ROWGUIDCOL 列(然后添加替换),因为我收到错误消息“具有 FILESTREAM 列的表必须具有具有 ROWGUIDCOL 属性的非空唯一列。”

我无法添加新的 ROWGUIDCOL 列(然后删除多余的原始列),因为我收到错误“指定为 ROWGUIDCOL 的重复列”

这个问题有什么解决办法吗?我是否必须备份所有文档内容(FILESTREAM 列)并首先删除它,然后更改 ROWGUIDCOL,然后将 FILESTREAM 内容放回原处?

4

1 回答 1

0

考虑为迁移创建具有不同名称的新表。然后加载INSERT...SELECT(根据需要映射列),删除原始表,最后将新表重命名为原始名称。

于 2015-12-16T13:19:27.293 回答