FileTableRootPath(Transact-SQL)

특정 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\MyDocumentDB

    기본값입니다.

    1

    서버 이름을 변환하지 않고 반환합니다. 예를 들면 다음과 같습니다.

    \\ServerName\MSSQLSERVER\MyDocumentDB

    2

    전체 서버 경로를 반환합니다. 예를 들면 다음과 같습니다.

    \\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDB

반환 형식

nvarchar(4000)

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

일반적인 주의

FileTableRootPath 함수는 다음 조건 중 하나에 해당하는 경우 NULL을 반환합니다.

  • FileTable_name 값이 올바르지 않은 경우

  • 호출자에게 지정된 테이블 또는 현재 데이터베이스를 참조할 수 있는 충분한 사용 권한이 없는 경우

  • 현재 데이터베이스에 대해 database_directory의 FILESTREAM 옵션이 설정되지 않은 경우

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

최선의 구현 방법

코드와 응용 프로그램을 현재 컴퓨터 및 데이터베이스 외에서도 사용할 수 있도록 하려면 코드를 작성할 때 절대 파일 경로를 사용하지 않는 것이 좋습니다. 대신 다음 예와 같이 FileTableRootPath 및 GetFileNamespacePath 함수를 함께 사용하여 런타임에 파일의 전체 경로를 가져옵니다. 기본적으로 GetFileNamespacePath 함수는 데이터베이스의 루트 경로 아래에 있는 파일의 상대 경로를 반환합니다.

USE MyDocumentDB;

@root varchar(100)
SELECT @root = FileTableRootPath();
@fullPath = varchar(1000);

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

보안

사용 권한

FileTableRootPath 함수에는 다음과 같은 사용 권한이 필요합니다.

  • 특정 FileTable의 루트 경로를 가져올 수 있는 FileTable에 대한 SELECT 권한

  • 현재 데이터베이스의 루트 경로를 가져올 수 있는 db_datareader 이상의 권한

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

USE MyDocumentDB;
-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB”
SELECT FileTableRootPath();

-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB\MyFileTable”
SELECT FileTableRootPath(N'dbo.MyFileTable');

-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB\MyFileTable”
SELECT FileTableRootPath(N'MyFileTable');

참고 항목

개념

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