Sql-Server
如何通過其文字路徑獲取子文件夾的 SQL Server 文件表路徑定位器
我有一個文件表,其中有幾個子表。
例如
FileTable ->subtable1 ->->subtable1.1 ->->subtable1.2 ->subtable2 ->subtable3
等等
如何獲取 SQL Server
path_locator
的子表,例如 ‘/subtable1/subtable1.1’ ?我需要它將文件從根目錄移動到子文件夾。我試過這個,但它不起作用
declare @parent hierarchyid; set @parent = GetPathLocator('folder2/folder2.1') update physical_files set path_locator = @parent.GetDescendant(NULL, NULL) where stream_id = '494D5C8B-AC22-E411-A464-00259060BBB9';
SQL Server 2012 報告:
消息 33423,級別 16,狀態 1
無效的 FileTable 路徑名或格式。
我找到了解決方案。這是文件表名稱為“physical_files”的範例,目標路徑為“folder1”,目標文件的stream_id = ‘FF9CF452-B522-E411-A464-00259060BBB9’
declare @path varchar(MAX); set @path = '\folder'; declare @parent hierarchyid; set @parent = GetPathLocator(CONCAT(FileTableRootPath('dbo.physical_files'), @path)); select @parent update physical_files set path_locator = @parent.GetDescendant(NULL, NULL) where stream_id = 'FF9CF452-B522-E411-A464-00259060BBB9';