Я пытаюсь использовать 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 () ОТ Code_filetable
ГДЕ Имя = '118.txt';
Этот код не проходит проверку синтаксиса, и сообщение:
"Невозможно вызвать метод в varbinary"
Столбец file_stream имеет тип varbinary (MAX) в фиксированной схеме, применяемой для каждого созданного FileTable. Я использую несколько FileTable больше года, и другие операции работают так, как задокументировано.
Если я не могу заставить GetFileNamespacePath () работать, мне придется каким-то образом жестко закодировать пути, которые я видел в File Manager, или, возможно, перейти на SQL Server 2016 или более позднюю версию.
Обратите внимание, что необходимо создать экземпляр базы данных для поддержки FILESTREAM и т. Д., Прежде чем вы сможете создать и использовать FileTable и воспроизвести эту проблему. Конфигурация описана здесь:
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-разрядная версия Enterprise)
Спасибо