개체 [INFORMATION_SCHEMA]에 대한 확인되지 않은 참조입니다. [TABLES]


99

[INFORMATION_SCHEMA].[TABLES]뷰에 액세스하는 UDF를 만들었습니다 .

CREATE FUNCTION [dbo].[CountTables]
(
    @name sysname
)
RETURNS INT
AS
BEGIN
    RETURN
    (
        SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name
    );
END

Visual Studio 내에서 뷰의 스키마와 이름은 모두 경고로 표시됩니다.

SQL71502 : 함수 : [dbo]. [CountTables]에 [INFORMATION_SCHEMA]. [TABLES] 개체에 대한 확인되지 않은 참조가 있습니다.

문제없이 데이터베이스 프로젝트를 게시 할 수 있으며 UDF가 올바르게 실행되는 것 같습니다. IntelliSense가 뷰 이름을 채워주므로 문제가없는 것 같습니다.

또한 sys.objects이보기 대신 사용하도록 구현을 변경하려고 시도했지만 이보기에 대해서도 동일한 경고를 받았습니다.

이 경고를 어떻게 해결할 수 있습니까?

답변:


180

다음에 대한 데이터베이스 참조 추가 master:

  1. 프로젝트에서 참조를 마우스 오른쪽 버튼으로 클릭 합니다.
  2. 데이터베이스 참조 추가 ...를 선택 합니다 .
  3. 시스템 데이터베이스를 선택 합니다 .
  4. 마스터 가 선택 되었는지 확인하십시오 .
  5. 보도 OK .

VS가 업데이트되는 데 시간이 걸릴 수 있습니다.


6
그리고 경고-누군가 다른 경로에 SSDT를 설치하면 문제가 발생할 있습니다. 우리는 지난 프로젝트에서 일부는 E : 드라이브가 있고 다른 일부는 C : 드라이브 만있는 문제를 만났습니다. 참조 파일을 복사하여. \ SharedSchemas \ master.dacpac을 통해 참조 할 수 있도록 공유 위치에 저장했습니다. 지금은 해결되었을 수 있지만 첫 번째 릴리스에서는 문제였습니다.
Peter Schott

Peter Schott는 여기에 요점이 있습니다. 일반적으로 참조 된 dacpac 파일을 솔루션 내부 어딘가에 복사하고 거기에서 사용하는 것이 좋습니다.
Veysel Ozdemir 2014 년

1
저에게는 "이 시스템 데이터베이스에 대한 참조가 이미 프로젝트에 존재합니다."라고 말합니다. 지금 막혔어요!
orad 2015 년

1
다음 사람이 온전한 상태를 유지하기 위해-믿거 나 종료하는 것만으로는이 문제를 해결하기에 충분하지 않습니다. 재부팅을해야 설정이 작동하기 시작했습니다. Visual Studio 옵션을 열 수도 있습니다. SQL Server 도구 ... 온라인 편집 ... "시스템 뷰 및 마스터 데이터베이스 개체에 대한 참조 확인"을 활성화합니다.
NYCdotNet

Visual Studio 2017에서 동일한 문제가 발생하고 참조 목록 아래에 "데이터베이스 참조"가 표시되지 않습니다
Scarl

3

우리 프로젝트에는 이미 master에 대한 참조가 있지만이 문제가있었습니다. 우리가 얻은 오류는 다음과 같습니다.

SQL71502: Procedure: [Schema].[StoredProc1] has an unresolved reference to object [Schema].[Table1].[Property1].

참조 오류를 해결하려면 테이블 sql 파일에서 속성을 마우스 오른쪽 단추로 클릭하고 BuildSettings가 Build로 설정되어 있는지 확인합니다.

빌드를 변경하여 수정했습니다.


2

Sam이 말한 것이이를 수행하는 가장 좋은 방법입니다.
그러나 특정 위치에 해당 참조가없는 머신에서 dacpac을 배포해야하는 시나리오가있는 경우 문제가 발생할 수 있습니다. 또 다른 방법은 .project 파일을 열고 다음 태그 false에 실행하려는 빌드 구성 의 값이 있는지 확인하는 것 입니다.

<TreatTSqlWarningsAsErrors>false</TreatTSqlWarningsAsErrors>

이렇게하면 프로젝트에 대한 참조를 추가 할 필요가 없습니다.


13
SQL 오류에 대한 피드백을 잃기 때문에 이것은 최후의 수단이되어야합니다!
Jowen 2015-04-07
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.