GetFileNamespacePath(Transact-SQL)GetFileNamespacePath (Transact-SQL)

이 항목은 다음에 적용됩니다.예SQL Server(2012부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

FileTable의 파일 또는 디렉터리에 대한 UNC 경로를 반환합니다.Returns the UNC path for a file or directory in a FileTable.

구문Syntax


<column-name>.GetFileNamespacePath(is_full_path, @option)  

인수Arguments

열 이름column-name
varbinary (max) 열 이름을 file_stream FileTable의 열입니다.The column name of the VARBINARY(MAX) file_stream column in a FileTable.

열 이름 값 유효한 열 이름 이어야 합니다.The column-name value must be a valid column name. 식이나 다른 데이터 형식의 열에서 변환 또는 캐스팅된 값은 사용할 수 없습니다.It cannot be an expression, or a value converted or cast from a column of another data type.

is_full_pathis_full_path
상대 경로를 반환할지 절대 경로를 반환할지 지정하는 정수 식입니다.An integer expression that specifies whether to return a relative or an absolute path. is_full_path 다음 값 중 하나일 수 있습니다.is_full_path can have one of the following values:

Value DescriptionDescription
00 데이터베이스 수준 디렉터리 내에서의 상대 경로를 반환합니다.Returns the relative path within the database-level directory.

기본값입니다.This is the default value
11 \\computer_name으로 시작하는 전체 UNC 경로를 반환합니다.Returns the full UNC path, starting with the \\computer_name.

@option
경로에 있는 서버 구성 요소의 형식을 지정하는 방법을 정의하는 정수 식입니다.An integer expression that defines how the server component of the path should be formatted. @option다음 값 중 하나일 수 있습니다.@option can have one of the following values:

Value DescriptionDescription
00 NetBIOS 형식으로 변환된 서버 이름을 반환합니다. 예를 들면 다음과 같습니다.Returns the server name converted to NetBIOS format, for example:

\\SERVERNAME\MSSQLSERVER\MyDocumentDB

이것은 기본값입니다.This is the default value.
11 서버 이름을 변환하지 않고 반환합니다. 예를 들면 다음과 같습니다.Returns the server name without conversion, for example:

\\ServerName\MSSQLSERVER\MyDocumentDB
22 전체 서버 경로를 반환합니다. 예를 들면 다음과 같습니다.Returns the complete server path, for example:

\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDB

반환 형식Return Type

nvarchar(max)nvarchar(max)

SQL ServerSQL Server 인스턴스가 장애 조치(Failover) 클러스터에 클러스터된 경우 이 경로의 일부로 반환된 컴퓨터 이름은 클러스터형 인스턴스의 가상 호스트 이름입니다.If the SQL ServerSQL Server instance is clustered in a failover cluster, then the machine name that is returned as part of this path is the virtual hostname for the clustered instance.

데이터베이스는 Always On 가용성 그룹에 속해 있을 때 면 FileTableRootPath 함수가 컴퓨터 이름 대신 (VNN) 가상 네트워크 이름 반환 합니다.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

경로는 GetFileNamespacePath 함수는 다음과 같은 형식의 논리 디렉터리 또는 파일 경로 반환 합니다.The path that the GetFileNamespacePath function returns is a logical directory or file path in the following format:

\\<machine>\<instance-level FILESTREAM share>\<database-level directory>\<FileTable directory>\...

이 논리 경로는 물리적 NTFS 경로에 직접적으로 대응되지는 않습니다.This logical path does not directly correspond to a physical NTFS path. 이 논리 경로는 FILESTREAM의 파일 시스템 필터 드라이버 및 FILESTREAM 에이전트에 의해 물리적 경로로 변환됩니다.It is translated to the physical path by FILESTREAM’s file system filter driver and the FILESTREAM agent. 논리 경로와 물리적 경로를 구분하면 SQL ServerSQL Server에서 경로 유효성에 영향을 주지 않고 내부적으로 데이터를 다시 구성할 수 있습니다.This separation between the logical path and physical path lets SQL ServerSQL Server reorganize data internally without affecting the validity of the path.

최선의 구현 방법Best Practices

코드와 응용 프로그램을 현재 컴퓨터 및 데이터베이스 외에서도 사용할 수 있도록 하려면 코드를 작성할 때 절대 파일 경로를 사용하지 않는 것이 좋습니다.To keep code and applications independent of the current computer and database, avoid writing code that relies on absolute file paths. 대신 전체 경로 파일에 대 한 런타임 시 사용 하 여 가져올는 FileTableRootPathGetFileNamespacePath 함수를 다음 예제에 표시 된 대로 함께 합니다.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. 기본적으로 GetFileNamespacePath 함수는 데이터베이스의 루트 경로 아래에 있는 파일의 상대 경로를 반환합니다.By default, the GetFileNamespacePath function returns the relative path of the file under the root path for the database.

USE MyDocumentDB;  
@root varchar(100)  
SELECT @root = FileTableRootPath();  

@fullPath = varchar(1000);  
SELECT @fullPath = @root + file_stream.GetFileNamespacePath() FROM DocumentStore  
WHERE Name = N’document.docx’;  

주의Remarks

Examples

다음 예제에서는 호출 하는 방법을 보여는 GetFileNamespacePath 함수를 파일이 나 FileTable의 디렉터리에 대 한 UNC 경로 가져옵니다.The following examples show how to call the GetFileNamespacePath function to get the UNC path for a file or directory in a FileTable.

-- returns the relative path of the form “\MyFileTable\MyDocDirectory\document.docx”  
SELECT file_stream.GetFileNamespacePath() AS FilePath FROM DocumentStore  
WHERE Name = N’document.docx’;  

-- returns “\\MyServer\MSSQLSERVER\MyDocumentDB\MyFileTable\MyDocDirectory\document.docx”  
SELECT file_stream.GetFileNamespacePath(1, Null) AS FilePath FROM DocumentStore  
WHERE Name = N’document.docx’;  

관련 항목:See Also

FileTable에서 디렉터리 및 경로 작업Work with Directories and Paths in FileTables