FileTable file_stream列:“无法在varbinary上调用方法”

时间:2018-10-28 21:49:58

标签: filetable

我正在尝试使用file_stream.GetFileNamespacePath(),如此处所述: https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/getfilenamespacepath-transact-sql?view=sql-server-2017使用此代码:

使用StepwiseProcedures

声明@root varchar(100)
SELECT @root = FileTableRootPath();

声明@fullPath varchar(1000);
SELECT @fullPath = @root + Code_filetable.file_stream.GetFileNamespacePath()FROM Code_filetable
WHERE Name ='118.txt';

此代码未通过语法检查,消息为: “无法在varbinary上调用方法”

在为创建的每个FileTable强制实施的固定模式中,file_stream列的类型为varbinary(MAX)。我已经使用多个FileTable超过一年了,其他操作正在按文档所述进行。

如果无法使GetFileNamespacePath()正常工作,则必须以某种方式对在文件管理器中看到的路径进行硬编码,或者迁移到SQL Server 2016或更高版本。

请注意,在创建和使用FileTable并重现此问题之前,必须建立数据库实例以支持FILESTREAM等。配置说明如下:
https://docs.microsoft.com/en-us/sql/relational-databases/blob/enable-and-configure-filestream?view=sql-server-2017

我已经通过以下链接阅读了以下内容,但没有什么可以解决这个问题的。

https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/getfilenamespacepath-transact-sql?view=sql-server-2017

SQL FileTable GetFileNamespacePath

https://www.sqlservercentral.com/Forums/Topic1715710-3077-1.aspx

https://sqltales.wordpress.com/2012/05/15/varbinary-vs-filestream-and-other-blob-issues-3/

https://www.databasejournal.com/features/mssql/filestream-and-filetable-in-sql-server-2012.html

https://svenaelterman.wordpress.com/2012/07/31/pathname-versus-getfilenamespacepath/

我正在使用Microsoft SQL Server 2014(企业版64位)

谢谢

0 个答案:

没有答案