2016-09-28 1 views
0

Visual Studio에서 SQL Server 데이터베이스 프로젝트를 사용할 때 데이터베이스에 1000 개 이상의 저장 프로 시저가있는 경우 가져올 때 Visual Studio는 프로 시저를 별도의 디렉터리 .SQL Server 데이터베이스 프로젝트가 새 스크립트 파일 만들기를 올바르게 처리하지 않음

'스키마 비교'기능을 통해 새 저장 프로 시저를 프로젝트에 동기화하려고하면 Visual Studio에서이 분할 폴더 구조를 잊어 버리고 모든 새 스크립트를 '저장 프로 시저'폴더에 직접 저장합니다. 즉, 스크립팅 된 새 저장 프로 시저가 기존 구조에 맞지 않아 사용자가이 분리 구조로 살거 나 수동으로 프로젝트 참조를 업데이트하고 파일을 Visual Studio에서 만든 초기 구조로 다시 복사해야합니다.

단계

  1. 는 새로운 SQL 프로젝트를 만듭니다.
  2. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭 한 다음 '가져 오기'> '데이터베이스'를 선택하십시오.
  3. 절차가 1000 개 이상 저장된 SQL2008 데이터베이스에 프로젝트를 바인딩하십시오. '폴더 당 최대 파일 수'를 1000으로 선택하십시오.
  4. VS가 모든 저장 프로 시저를 스크립트 아웃하도록 허용하십시오. 은 자동으로 1000의 배치로 분할하고 필요에 따라 각 배치에 대해 'Proc1', 'Proc2' 폴더를 새로 만듭니다.
  5. SQL 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 '스키마 비교'를 선택하여 새 비교를 엽니 다.
  6. SQL 프로젝트와 원본 데이터베이스를 비교하여 데이터베이스가 올바르게 동기화되었는지 확인하십시오. 보류중인 변경 사항이 없어야합니다.
  7. 동기화 된 데이터베이스에 새 저장 프로 시저를 만듭니다.
  8. 비교를 다시 실행하면 '추가'유형 아래에 새로운 저장 프로 시저 이 표시됩니다.
  9. '업데이트'를 클릭하고 VS가 새 절차를위한 스크립트를 만들도록하십시오.
  10. 새 스크립트를 원래의 1000 개의 구분 된 폴더 구조에 배치하는 대신 새 스크립트를 '저장 프로 시저'폴더에 직접 배치합니다.

답변

0

재미있는 시나리오입니다. 나는 요즘 중 하나를 확인해 보겠습니다.

여기 내 2 센트입니다. 모든 데이터베이스 개체를 데이터베이스 프로젝트에 처음로드 한 후 (또는 개발 팀) SSMS를 통해 새로운 SP 또는 개체를 데이터베이스에 직접 추가하는 작업을 중단합니다. 대신 데이터베이스 프로젝트에 추가하고 필요한 모든 서버에 배포합니다. 데이터베이스 프로젝트는 그 시점부터 온전한 ​​코드 소스처럼 작동합니다. 또한 TFS 분기 기능을 활용하여 QA 버전 인 데이터베이스 프로젝트의 Prod 버전을 유지할 수 있습니다. 또한 미래의 코드 유지 관리에 도움이되는 Stored Proc 폴더 아래에있는 SP를 범주에 대해 의미있는 이름을 폴더에 제공하려고합니다.

관련 문제