SQL Native Client(SNAC)은 SQL Server 2005에 새로이 추가된 Data Access Libary로 이해하면 됩니다.
간단히 말하면, SNAC은 OLE DB와 ODBC 모두를 지원하는데 사용하는 Stand-alone Data Access API입니다. Microsoft Data Access Components(MDAC)이 지원하는 기능에 더하여 새로운 기능을 지원하며, SQL OLE DB Provider와 SQL ODBC Driver를 하나의 Native Dynamic Link Library(DLL)로 결합시켰습니다.
SNAC은 응용프로그램에서 SQL Server 2005의 새로운 기능(MARS:Multiple Active Result Sets, UDT:User-Defined Types, XML Data Type) 등을 활용하는데 필요합니다.
OLE DB Provider와 SQL ODBC Driver를 하나의 라이브러리로 결합한 SNAC을 새로이 공급하는 이유는 MDAC의 제한이나 문제점을 해결하기 위한 것입니다. 현재 MDAC은 윈도우 운영체제의 컴포넌트로 제공됩니다. 따라서 MDAC 기반의 응용프로그램을 개발하고 유지보수하는데 운영체제 유지보수 체계와의 문제로 인하여, 설치, 배포, 업그레이드 등과 관련된 이슈와 문제점이 많습니다. SNAC이 제공은 이러한 이슈들을 MDAC과 분리하기 위한 것으로 이해할 수 있습니다.
SNAC은 SQL Server를 위한 ODBC와 OLE DB API만을 지원하고 SQL Server 릴리스와 서비스 팩에서만 업그레이드 됩니다. MDAC은 계속해서 SNAC을 포함하는 모든 드라이버/프로바이더릉 위한 핵심적인 Data Access Service를 지원하지만 윈도우 릴리스와 서비스 팩에서만 업그레이드 됩니다.
그렇다고 무조건 SNAC을 쓰라는 것은 아닙니다. 이미 구축되어 있는 응용프로그램을 SQL 2005의 새로운 특징들을 활용할 수 있도록 업그레이드하거나 새로문 COM-기반 또는 Native 응용프로그램을 개발할 때 사용하기를 권고하고 있습니다. SQL 2005의 새로운 특징들을 사용할 필요가 없다면, 기존의 OLE DB나 ODBC 코드로 충분합니다. 물론, 데이터 접근에 있어 관리되는 코드 기반으로 가고자 한다면, .Net Framework의 ADO.NET Data Access 클래스가 필요합니다.