다음을 통해 공유


FileTableRootPath(Transact-SQL)

적용 대상: SQL Server

특정 FileTable 또는 현재 데이터베이스에 대한 루트 수준 UNC 경로를 반환합니다.

구문

  
FileTableRootPath ( [ '[schema_name.]FileTable_name' ], @option )  

인수

FileTable_name
FileTable의 이름입니다. FileTable_name nvarchar 형식입니다. 이것은 선택적 매개 변수입니다. 기본값은 현재 데이터베이스입니다. schema_name 지정하는 것도 선택 사항입니다. 기본 매개 변수 값을 사용하려면 FileTable_name NULL을 전달할 수 있습니다.

@option
경로의 서버 구성 요소의 서식을 지정하는 방법을 정의하는 정수 식입니다. @option 다음 값 중 하나를 가질 수 있습니다.

설명
0 NetBIOS 형식으로 변환된 서버 이름을 반환합니다. 예를 들면 다음과 같습니다.

\\SERVERNAME\MSSQLSERVER\MyDocumentDatabase

기본값입니다.
1 변환 없이 서버 이름을 반환합니다. 예를 들면 다음과 같습니다.

\\ServerName\MSSQLSERVER\MyDocumentDatabase
2 예를 들어 전체 서버 경로를 반환합니다.

\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDatabase

반환 형식

nvarchar(4000)

데이터베이스가 Always On 가용성 그룹에 속하는 경우 FileTableRootPath 함수는 컴퓨터 이름 대신 VNN(가상 네트워크 이름)을 반환합니다.

일반적인 주의 사항

FileTableRootPath 함수는 다음 조건 중 하나가 true이면 NULL을 반환합니다.

  • FileTable_name이 잘못되었습니다.

  • 호출자에게 지정된 테이블 또는 현재 데이터베이스를 참조할 수 있는 충분한 권한이 없습니다.

  • database_directory FILESTREAM 옵션이 현재 데이터베이스에 대해 설정되지 않았습니다.

자세한 내용은 FileTable에서 디렉터리 및 경로 작업을 참조하십시오.

좋은 연습 방법

코드와 애플리케이션을 현재 컴퓨터 및 데이터베이스와 독립적으로 유지하려면 절대 파일 경로를 사용하는 코드를 작성하지 마세요. 대신 다음 예제와 같이 FileTableRootPath 및 GetFileNamespacePath 함수를 함께 사용하여 런타임에 파일의 전체 경로를 가져옵니다. 기본적으로 GetFileNamespacePath 함수는 데이터베이스의 루트 경로 아래에 있는 파일의 상대 경로를 반환합니다.

USE MyDocumentDatabase;  
  
@root varchar(100)  
SELECT @root = FileTableRootPath();  
@fullPath = varchar(1000);  
  
SELECT @fullPath = @root + file_stream.GetFileNamespacePath()  
FROM DocumentStore  
WHERE Name = N'document.docx';  

보안

사용 권한

FileTableRootPath 함수에는 다음이 필요합니다.

  • FileTable에 대한 SELECT 권한으로 특정 FileTable의 루트 경로를 가져옵니다.

  • 현재 데이터베이스의 루트 경로를 가져오는 db_datareader 이상의 권한입니다.

예제

다음 예제에서는 FileTableRootPath 함수를 호출하는 방법을 보여 줍니다.

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');  

참고 항목

FileTable에서 디렉터리 및 경로 작업