我有几个表,我想使用文件流存储.
这些表已包含二进制数据并具有rowguids.但是,在创建它们时,表未添加到启用文件流的文件组中.@H_301_3@
解决方法@H_301_10@
您不需要将整个表添加到文件流文件组,实际上您不能,因为只有文件流列存储在文件流存储中;同一个表中的其他列转到正常存储.
首先,您需要选择要用于存储表的文件流数据的文件流文件组:@H_301_3@
ALTER TABLE YourTable SET (FILESTREAM_ON = FSGroup)
然后,您只需将filestream列添加到表中:@H_301_3@
ALTER TABLE YourTable ADD YourColumn varbinary(max) FILESTREAM
但是,如果没有以这种方式定义,则无法更改现有列以开始使用filestream;但是您可以创建一个新列,复制数据然后删除旧列并重命名新列:@H_301_3@
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'
首先,您需要选择要用于存储表的文件流数据的文件流文件组:@H_301_3@
ALTER TABLE YourTable SET (FILESTREAM_ON = FSGroup)
然后,您只需将filestream列添加到表中:@H_301_3@
ALTER TABLE YourTable ADD YourColumn varbinary(max) FILESTREAM
但是,如果没有以这种方式定义,则无法更改现有列以开始使用filestream;但是您可以创建一个新列,复制数据然后删除旧列并重命名新列:@H_301_3@
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'