2009-07-11 2 views
0

ADO.NET 공급자의 스키마를 사용하여 SQL Server 2008에서 데이터를 가져 오는 방법을 파악하려고합니다. 데이터베이스 가져 오기 마법사를 사용하여 ADO.NET 공급자 (이 경우에는 VistaDB를 사용 중입니다)를 선택할 수 있습니다. 그러나 실제 가져 오기를 수행하면 하나 이상의 테이블에서 데이터 복사가 회색으로 표시됩니다. 쿼리 만 작성할 수 있습니다. 전체 데이터베이스 스키마 및 데이터를 복사하려고합니다.SQL Server 2008은 ADO.NET Provider에서 스키마와 데이터를 가져 옵니까?

Microsoft 제공 업체에서만 기본적으로 사용할 수 있고 타사에 대한 사용자 지정 설명자를 작성해야한다는 온라인 도움말의 내용을 발견했습니다. 그런 다음 도움말은 \ Program Files \ Microsoft SQL Server \ 100 \ DTS \ ProviderDescriptors를 가리켜 디렉터리를 찾습니다. XML 파일을 살펴보면 모든 스키마 및 정의로드에 대한 SQL 쿼리가 필요한 것처럼 보입니다. 왜 모든 ADO.NET 공급자가 구현해야하는 GetSchema() 호출을 통해로드 할 수 없습니까? 그게 나에게 어떤 의미가 없지.

그런 다음 모든 ADO.NET 공급자에서 SQL Server의 DTS 패키지에있는 모든 스키마를 가져올 수있는 것으로 나타났습니다. 제가 작성한 마지막 DTS 패키지는 약 10 년 전이었습니다. 2008 버전을 보면 나는 완전히 잃어 버렸습니다. DTS 패키지를 통해 전체 데이터베이스 스키마를로드하고 SQL Server로 가져올 수있는 방법은 무엇입니까?

아니면 생각해 보는 것이 더 쉬운 방법일까요?

답변

0

좋아, 결국 SQL Server 도구를 사용하여 VistaDB에서 SQL Server로 마이그레이션하기위한이 주제에 대한 두 개의 블로그 게시물을 만들었습니다. 비 직관적이며 SSIS를 사용해야하는 경우가 많습니다. 다른 방법은 없습니다.

Using SQL Server Import and Export Wizard with VistaDB - 대부분 기본 정보 마법사 사용에 대한 정보이지만 권장하지 않습니다. 한 번에 1 개의 테이블 만 만들 것이고 설치하는 것이 힘들 것입니다. 또한 SQL Server Standard 이상이 아닌 다른 컴퓨터에서 반복적으로 실행할 수 없습니다.

Using SQL Server Integration Services to Migrate VistaDB 4 Data -이 게시물의 대부분은 ADO.NET 공급자에게 적용됩니다. mySQL 전문가, DB2 및 다른 사람들로부터 정보의 일부를 발견했습니다. 난 그냥 VistaDB 사용자를 위해 모두 함께 넣어.

흥미로운 정보는 SSIS를 통해 11 개의 테이블 데이터베이스에 대한 마이그레이션을 구축하는 데 3.5 시간이 걸렸습니다. 이 과정은 매우 고통스럽고 클릭 단계가 많아서 일반적인 편집이 아닌 고급 편집을 사용합니다. SSIS 패키지 전체를 설치하면 실행하는데 약 2 분이 걸렸습니다. 그리고 나서 (이론적으로) 원할 때마다 다시 실행할 수있었습니다. 그러나 제 경우에는 데이터와 구조를 한 번만 옮기고 싶었습니다. 설정에 많은 시간이 필요합니다.

그런 다음 모든 테이블을 걷고 sqlcmd에서 실행할 수있는 SQL 문을 뱉어내는 간단한 응용 프로그램을 작성했습니다. 해당 응용 프로그램을 작성하는 데 약 1.5 시간이 걸렸으며 약 10 초 후에 실행되었습니다. 그러나 sqlcmd는 한 번에 하나씩 모든 명령문을 실행하는 데 거의 한 시간이 걸렸습니다.

SQL Server에서 VistaDB로 데이터 마이그레이션 마법사를 역으로 만들 수 있습니다. 단 7 번의 클릭만으로 데이터베이스를 마이그레이션 할 수 있으며 실행하는 데 몇 초가 걸립니다. 모든 데이터 액세스는 ADO.NET 공급자에 대한 GetSchema() 호출을 통해 이루어집니다.

관련 문제