2016-03-23 7 views
2

I次の表の列があります。は、既存のテーブル列にFILESTREAMを追加

[Content] [varbinary](max) NULL 

をそして私は、私が試したので、それにFILESTREAM列を作りたい:

alter table dbo.Files 
    alter column Content add filestream 

しかし、私はエラーを取得します:

Incorrect syntax near 'filestream'. 

私も

を試してみました

しかし、私はエラーました:

Cannot alter column 'Content' in table 'Files' to add or remove the FILESTREAM column attribute. 

私は既存の列にFILESTREAMを追加することができますどのように?

+0

私はあなたが別の列「テーブルdbo.Filesを変更 Content_newのvarbinary型を追加(最大)FILESTREAM nullでないを作成する必要があり疑いを持っています元の列にあるものをコピーします。 –

答えて

2

あなたは(hereから供給)次の操作を実行する必要があります

/* rename the varbinary(max) column 
eg. FileData to xxFileData */ 
sp_RENAME '<TableName>.<ColumnName>', 'xx<ColumnName>' , 'COLUMN' 
GO 

/* create a new varbinary(max) FILESTREAM column */ 
ALTER TABLE <TableName> 
ADD <ColumnName> varbinary(max) FILESTREAM NULL 
GO 

/* move the contents of varbinary(max) column to varbinary(max) FILESTREAM column */ 
UPDATE <TableName> 
SET <ColumnName> = xx<ColumnName> 
GO 

/* drop the xx<ColumnName> column */ 
ALTER TABLE <TableName> 
DROP COLUMN xx<ColumnName> 
GO