Если кто столкнётся. В SQL Server 2008 появился новый атрибут FILESTREAM для типа данных VARBINARY (
подробнее здесь или
здесь). В примерах часто приводят использование функции
PathName() в запросах для определения пути к объекту:
SELECT [FileData].PathName() FROM SomeTable
В результате чего получают:
------------------------------------------------------------------------------------------------
\\XXX\MSSQLSERVER\v1\FileStreamTest\dbo\SomeTable\FileData\27FADEFC-FA16-4897-8C64-008F0FB6EA9D
...
Можно также получить и физический путь, чтобы потом не извращаться со всякими SqlFileStream (см.
OpenSqlFilestream API):
SELECT [FileData].PhysicalPathName() FROM SomeTable
НО!, по умолчанию, получим ошибку
Msg 5595, Level 16, State 1...
.PhysicalPathName is disabled.
Чтобы его задействовать необходимо воспользоваться DBCC TRACEON
DBCC TRACEON (5556, -1)
GO
После чего можем смело использовать PhysicalPathName():
SELECT FileData.PhysicalPathName() FROM SomeTable
GO
Результат:
------------------------------------------------------------------------------------------------
F:\MS SQL Databases\FileStreamGroup1Folder\Pictures\...адовые GUID'ы...\00000019-0000007d-011a