--- title: "FileTableRootPath (Transact-SQL) | Microsoft Docs" ms.custom: "" ms.date: "03/14/2017" ms.prod: sql ms.prod_service: "database-engine" ms.reviewer: "" ms.technology: system-objects ms.topic: "language-reference" f1_keywords: - "FileTableRootPath_TSQL" - "FileTableRootPath" dev_langs: - "TSQL" helpviewer_keywords: - "FileTableRootPath function" ms.assetid: 0cba908a-c85c-4b09-b16a-df1cb333c629 author: "rothja" ms.author: "jroth" --- # FileTableRootPath (Transact-SQL) [!INCLUDE[tsql-appliesto-ss2012-xxxx-xxxx-xxx-md](../../includes/tsql-appliesto-ss2012-xxxx-xxxx-xxx-md.md)] Returns the root-level UNC path for a specific FileTable or for the current database. ## Syntax ``` FileTableRootPath ( [ '[schema_name.]FileTable_name' ], @option ) ``` ## Arguments *FileTable_name* The name of the FileTable. *FileTable_name* is of type **nvarchar**. This is an optional parameter. The default value is the current database. Specifying *schema_name* is also optional. You can pass NULL for *FileTable_name* to use the default parameter value *\@option* An integer expression that defines how the server component of the path should be formatted. *\@option* can have one of the following values: |Value|Description| |-----------|-----------------| |**0**|Returns the server name converted to NetBIOS format, for example:

`\\SERVERNAME\MSSQLSERVER\MyDocumentDatabase`

This is the default value.| |**1**|Returns the server name without conversion, for example:

`\\ServerName\MSSQLSERVER\MyDocumentDatabase`| |**2**|Returns the complete server path, for example:

`\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDatabase`| ## Return Type **nvarchar(4000)** When the database belongs to an Always On availability group, then the **FileTableRootPath** function returns the virtual network name (VNN) instead of the computer name. ## General Remarks The **FileTableRootPath** function returns NULL when one of the following conditions is true: - The value of *FileTable_name* is not valid. - The caller does not have sufficient permission to reference the specified table or the current database. - The FILESTREAM option of *database_directory* is not set for the current database. For more information, see [Work with Directories and Paths in FileTables](../../relational-databases/blob/work-with-directories-and-paths-in-filetables.md). ## Best Practices To keep code and applications independent of the current computer and database, avoid writing code that relies on absolute file paths. Instead, get the complete path for a file at run time by using the **FileTableRootPath** and **GetFileNamespacePath** functions together, as shown in the following example. By default, the **GetFileNamespacePath** function returns the relative path of the file under the root path for the database. ```sql USE MyDocumentDatabase; @root varchar(100) SELECT @root = FileTableRootPath(); @fullPath = varchar(1000); SELECT @fullPath = @root + file_stream.GetFileNamespacePath() FROM DocumentStore WHERE Name = N'document.docx'; ``` ## Security ### Permissions The **FileTableRootPath** function requires: - SELECT permission on the FileTable to get the root path of a specific FileTable. - **db_datareader** or higher permission to get the root path for the current database. ## Examples The following examples show how to call the **FileTableRootPath** function. ``` USE MyDocumentDatabase; -- returns "\\MYSERVER\MSSQLSERVER\MyDocumentDatabase" SELECT FileTableRootPath(); -- returns "\\MYSERVER\MSSQLSERVER\MyDocumentDatabase\MyFileTable" SELECT FileTableRootPath(N'dbo.MyFileTable'); -- returns "\\MYSERVER\MSSQLSERVER\MyDocumentDatabase\MyFileTable" SELECT FileTableRootPath(N'MyFileTable'); ``` ## See Also [Work with Directories and Paths in FileTables](../../relational-databases/blob/work-with-directories-and-paths-in-filetables.md)