2009-11-12 7 views
1

Visual Studio 데이터베이스 프로젝트 (GDR2)에서 만든 변경 데이터 캡처 (CDC)를 사용하는 데이터베이스가 있습니다.Visual Studio + 데이터베이스 버전 + CDC = 배포 실패

내 문제는 CDC 정보를 분석하고 데이터를 반환하는 저장 프로 시저가 있다는 것입니다. 그게 어때서 문제 야? 음, 작동 순서는 다음과 같습니다. 나는 활성화 곳

  1. 사전 배포 스크립트
  2. 테이블 등
  3. 인덱스, 키,
  4. 절차
  5. 배포 후 스크립트 후 배포 스크립트 내부

입니다 CDC. 여기에 문제가 있습니다. 아직 존재하지 않기 때문에 CDC 테이블에서 작동하는 절차는 폭탄입니다! sys.sp_cdc_enable_table에 대한 호출을 테이블을 만드는 스크립트에 넣으려고했지만 그다지 좋지 않습니다.

오류 102 TSD03070 :이 문맥에서는이 문구가 인식되지 않습니다. C : ... \ 스키마 \ 스키마는 개체 \ DBO 테이블

  • 그것을 참조 할 때 사용할 수 있어요하도록 CDC를 가능하게하는 더 나은/내장 방법이 있나요 Foo.table.sql 20 일 푸 \ \ 저장 프로 시저가 생성됩니까?
  • 테이블을 만든 후 다른 개체를 만들기 전에 스크립트를 실행하는 방법이 있습니까?
  • 절차 종속성을 생성하는 방법은 어떨까요?
  • 아니면 그냥하지 말아야 할 일을하고 있습니까?!?!

이제는 해결 방법이 있습니다.

  1. 주석으로 나는 CDC를 업데이트 다음 시간까지
  2. 배포
  3. 모든 위대한 인 SPROC 본체
  4. 배포 (CDC가 생성)
  5. 의 주석 sproc에 테이블을 추적. 그런 다음 '해를 끼치는'절차를 주석 처리해야합니다.

내 질문을 읽고 고마워 주셔서 감사합니다.

답변

0

저는 VS DB 프로젝트를 통해이 작업을 수행하는 것에 익숙하지 않지만 대체 방법을 제안하려고 할 수 있습니다. 반은 대답이지만 1 단계에서 proc를 변경하는 대신 DROP 할 수 있습니까? 적어도 그렇게하면 proc의 내용을 원숭이처럼 보지 않아도됩니다. "db for diff"일 전에 모든 테이블을 변경하기 전에 모든 비 테이블 비트를 삭제했습니다.

근본 원인을 알 수는 없지만 적어도 더 쉽고 명확한 해결책이 될 수 있습니다. 그 밖의 것이 없다면, proc이 있는지 여부를 알 수 있습니다. 모든 것이 멋지다고 생각하지 못하지만 proc 본문이 누락되어 있으므로 아무 것도하지 않습니다.

+0

확실하지 않습니다. proc 파일은 foo.proc입니다.sql, 배포 할 때마다 Visual Studio가 실행됩니다. 파일 자체는 CREATE PROCEDURE dbo.foo AS입니다. 배포가 어떻게 작동하는지 잘 모르겠습니다. 모든 것이 충돌 한 다음 처음부터 다시 시작하면됩니다. 간헐적 인 문제로 PITA가됩니다. 예를 들어, 새로운 열 ATM이 없으면 유명 해지고 있습니다. :) –

관련 문제