站长网 MsSql教程 sql-server – 包含要使用文件流的二进制文件的现有表

sql-server – 包含要使用文件流的二进制文件的现有表

我有几个表,我想使用文件流存储. 这些表已包含二进制数据并具有rowguids.但是,在创建它们时,表未添加到启用文件流的文件组中. 这些表在这一点上使用文件流的最佳方法是什么?我是否需要删除重新创建表并迁移数据?有没有更简单的方法? 数据库已启用了文件

我有几个表,我想使用文件流存储.

这些表已包含二进制数据并具有rowguids.但是,在创建它们时,表未添加到启用文件流的文件组中.

这些表在这一点上使用文件流的最佳方法是什么?我是否需要删除重新创建表并迁移数据?有没有更简单的方法?

数据库已启用了文件流,还有其他表正在使用它们.

解决方法

您不需要将整个表添加到文件流文件组,实际上您不能,因为只有文件流列存储在文件流存储中;同一个表中的其他列转到正常存储.

首先,您需要选择要用于存储表的文件流数据的文件流文件组:

ALTER TABLE YourTable SET (FILESTREAM_ON = FSGroup)

然后,您只需将filestream列添加到表中:

ALTER TABLE YourTable ADD YourColumn varbinary(max) FILESTREAM

但是,如果没有以这种方式定义,则无法更改现有列以开始使用filestream;但是您可以创建一个新列,复制数据然后删除旧列并重命名新列:

ALTER TABLE YourTable ADD NewColumn varbinary(max) FILESTREAM
UPDATE YourTable SET NewColumn = OldColumn
ALTER TABLE YourTable DROP COLUMN OldColumn
EXEC sp_rename 'NewColumn','OldColumn','COLUMN'

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/jc/mssql/2021/0524/5940.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部