FILESTREAM 지원
적용 대상: SQL Server
Important
SNAC(SQL Server Native Client)는 다음과 함께 제공되지 않습니다.
- SQL Server 2022(16.x) 이상 버전
- SQL Server Management Studio 19 이상 버전
SQL Server Native Client(SQLNCLI 또는 SQLNCLI11)와 레거시 Microsoft OLE DB Provider for SQL Server(SQLOLEDB)는 새로운 응용 프로그램 개발에 권장되지 않습니다.
새 프로젝트의 경우 다음 드라이버 중 하나를 사용합니다.
SQL Server 데이터베이스 엔진(버전 2012부터 2019까지)의 구성 요소로 제공되는 SQLNCLI의 경우 이 수명 주기 예외 지원을 참조하세요.
FILESTREAM은 SQL Server 또는 Windows 파일 시스템에 대한 직접 액세스를 통해 큰 이진 값을 저장하고 액세스하는 방법을 제공합니다. 큰 이진 값은 2GB보다 큰 값입니다. 향상된 FILESTREAM 지원에 대한 자세한 내용은 FILESTREAM(SQL Server)을 참조하세요.
데이터베이스 연결을 열면 @@TEXTSIZE가 기본적으로 -1("제한 없음")로 설정됩니다.
Windows 파일 시스템 API를 사용하여 FILESTREAM 열에 액세스하고 업데이트할 수도 있습니다.
자세한 내용은 아래 항목을 참조하세요.
FILESTREAM 열 쿼리
OLE DB의 스키마 행 집합은 열이 FILESTREAM 열인지 여부를 보고하지 않습니다. OLE DB의 ITableDefinition을 사용하여 FILESTREAM 열을 만들 수 없습니다.
ODBC의 SQLColumns와 같은 카탈로그 함수는 열이 FILESTREAM 열인지 여부를 보고하지 않습니다.
FILESTREAM 열을 만들거나 FILESTREAM 열인 기존 열을 검색하려면 sys.columns 카탈로그 뷰의 is_filestream 열을 사용할 수 있습니다.
다음은 이에 대한 예입니다.
-- Create a table with a FILESTREAM column.
CREATE TABLE Bob_01 (GuidCol1 uniqueidentifier ROWGUIDCOL NOT NULL UNIQUE DEFAULT NEWID(), IntCol2 int, varbinaryCol3 varbinary(max) FILESTREAM);
-- Find FILESTREAM columns.
SELECT name FROM sys.columns WHERE is_filestream=1;
-- Determine whether a column is a FILESTREAM column.
SELECT is_filestream FROM sys.columns WHERE name = 'varbinaryCol3' AND object_id IN (SELECT object_id FROM sys.tables WHERE name='Bob_01');
하위 수준과의 호환성
클라이언트가 SQL Server 2005(9.x)에 포함된 SQL Server Native Client 버전을 사용하여 컴파일되고 애플리케이션이 최신 버전의 SQL Server 에 연결하는 경우 varbinary(max) 동작은 SQL Server 2005(9.x)와 호환됩니다. 즉, 반환되는 데이터의 최대 크기가 2GB로 제한됩니다. 결과 값이 2GB보다 큰 경우 잘림이 발생하고 "문자열 데이터 오른쪽 잘림" 경고가 반환됩니다.
데이터 형식 호환성을 80으로 설정하면 클라이언트 동작이 하위 수준 클라이언트 동작과 일치합니다.
SQL Server Native Client의 SQL Server 2005(9.x) 버전 이전에 릴리스된 SQLOLEDB 또는 다른 공급자를 사용하는 클라이언트 의 경우 varbinary(max) 가 이미지에 매핑됩니다.