[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
이보기 대신 사용하도록 구현을 변경하려고 시도했지만 이보기에 대해서도 동일한 경고를 받았습니다.
이 경고를 어떻게 해결할 수 있습니까?
답변
다음에 대한 데이터베이스 참조 추가 master
:
- 프로젝트에서 참조를 마우스 오른쪽 버튼으로 클릭 합니다.
- 데이터베이스 참조 추가 …를 선택 합니다 .
- 시스템 데이터베이스를 선택 합니다 .
- 마스터 가 선택 되었는지 확인하십시오 .
- 보도 OK .
VS가 업데이트되는 데 시간이 걸릴 수 있습니다.
답변
우리 프로젝트에는 이미 master에 대한 참조가 있지만이 문제가있었습니다. 우리가 얻은 오류는 다음과 같습니다.
SQL71502: Procedure: [Schema].[StoredProc1] has an unresolved reference to object [Schema].[Table1].[Property1].
참조 오류를 해결하려면 테이블 sql 파일에서 속성을 마우스 오른쪽 단추로 클릭하고 BuildSettings가 Build로 설정되어 있는지 확인합니다.
빌드를 변경하여 수정했습니다.
답변
Sam이 말한 것이이를 수행하는 가장 좋은 방법입니다.
그러나 특정 위치에 해당 참조가없는 머신에서 dacpac을 배포해야하는 시나리오가있는 경우 문제가 발생할 수 있습니다. 또 다른 방법은 .project 파일을 열고 다음 태그 false
에 실행하려는 빌드 구성 의 값이 있는지 확인하는 것 입니다.
<TreatTSqlWarningsAsErrors>false</TreatTSqlWarningsAsErrors>
이렇게하면 프로젝트에 대한 참조를 추가 할 필요가 없습니다.