2013-04-16 2 views
3

Visual Studio 2010에서 올바르게 빌드 한 tSQLt를 사용하는 많은 데이터베이스 프로젝트가 있습니다. Visual Studio 2012에서 열 때, IDE에서 "기능적 변경 "을 사용합니다.Visual Studio 2012에서 tSQLt 프로젝트를 빌드하지 못했습니다.

일단 변환을 완료하면 더 이상 데이터베이스 프로젝트가 더 이상 성공적으로 빌드되지 않습니다.

{Path}.Database.Messages\Schema Objects\Schemas\tSQLt\ 
Programmability\Functions\Private_GetConstraintType.function.sql(6,10): 
Error: SQL71501: Function: [tSQLt].[Private_GetConstraintType] has an 
unresolved reference to object [sys].[objects]. 

이 변환은 어떤 방법으로 명명 된 스크립트를 변경 표시되지 않습니다 사상 tSQLt 스키마는 다음과 같습니다는 sys.objects에 대한 오류가 발생에서 객체처럼 대신 보인다. 무슨 일이야? (그리고 어떻게 이런 문제를 조사 할. 그것은 꽤 비밀입니다.)

답변

3

tSQLt 기능 [tSQLt]를. Private_GetConstraintType]MSDB 시스템 데이터베이스에 있습니다 는 sys.objects에서 선택합니다.

당신은 비주얼 스튜디오 2012 (데이터 도구)에 데이터베이스 프로젝트에 데이터베이스 ( 또는 마스터) MSDB에 데이터베이스 참조를 추가해야합니다.

이이 솔루션 -> 프로젝트 -> 기준 -> 데이터베이스 참조 추가 (아래 스크린 샷 참조)로 이동

enter image description here

및 시스템 데이터베이스 MSDB에 대한 참조를 추가 수행합니다. 도움이 될 것입니다.

enter image description here

+0

네,이 방법도 잘 작동합니다. 나는 몇 달 전에 똑같은 문제를 겪었다. 나는 혼란스럽고 마침내 해결했지만 나는 그 때 당신의 대답으로 할 수있었습니다! :) –

+0

또한 사전 배포 스크립트에 "ALTER DATABASE $ (DatabaseName) SET TRUSTWORTHY ON"을 추가해야했습니다. –

+0

아, msdb 대신 master에 대한 참조를 추가하여 데이터베이스 이름을 sys로 설정해야했습니다. –

관련 문제