Transact-SQL IntelliSense 문제 해결

IntelliSense 옵션이 예상대로 작동하지 않는 경우가 있습니다.

온라인 및 오프라인 가용성

특정 조건이 충족되는 경우에만 Transact-SQL 편집기에서 IntelliSense 멤버 목록, 단어 자동 완성, 매개 변수 정보 및 요약 정보를 사용할 수 있습니다. 이러한 기능에 대한 자세한 내용은 Transact-SQL IntelliSense 개요를 참조하십시오.

이 기능의 가용성은 다음 두 가지 주요 요소에 의해 결정됩니다.

  • **SQL Server 인스턴스에 연결:**SQL Server 인스턴스에 연결되면 IntelliSense를 사용할 수 있습니다. 이때 편집 중인 파일이 데이터베이스 프로젝트와 관련된 경우에도 연결에서 IntelliSense 메타데이터가 파생됩니다.

  • **데이터베이스 프로젝트와 관련:**Transact-SQL 편집기를 사용하여 편집 중인 파일이 데이터베이스 프로젝트와 관련이 있으면 IntelliSense를 사용할 수 있습니다. 이때 SQL Server 인스턴스에 연결되지 않으면 프로젝트와 관련된 데이터베이스 개체에서 IntelliSense 메타데이터가 파생됩니다.

다음 표에서는 이 두 요소가 멤버 목록, 단어 자동 완성, 매개 변수 정보 및 요약 정보 기능의 가용성에 어떤 영향을 주는지 보여 줍니다.

SQL Server 인스턴스에 연결됩니까?

데이터베이스 프로젝트와 관련이 있습니까?

사용 가능 여부

참고

연결 기반 IntelliSense

아니요

연결 기반 IntelliSense

아니요

프로젝트 기반 IntelliSense

아니요

아니요

아니요

Transact-SQL 편집기가 SQL Server 인스턴스에 연결되면 IntelliSense를 사용할 수 있으며 해당 데이터베이스 연결과 관련된 개체가 표시됩니다. Transact-SQL 편집기가 SQL Server 인스턴스에 연결되지 않으면 데이터베이스 프로젝트와 관련된 개체에서 IntelliSense 정보가 파생됩니다. Transact-SQL 편집기가 SQL Server 인스턴스에 연결되지 않고 데이터베이스 프로젝트와 관련이 없는 경우 IntelliSense를 사용할 수 없습니다.

편집기가 프로젝트와 관련이 없거나 SQL Server 인스턴스에 연결되지 않더라도 IntelliSense 구문 분석 기능과 Transact-SQL 코드 조각 기능은 항상 사용할 수 있습니다.

IntelliSense에 영향을 주는 기타 조건

IntelliSense 동작에 영향을 줄 수 있는 조건은 다음과 같습니다.

  • 커서 위에 코드 오류가 있습니다.

    삽입 지점 위치 위에 불완전한 문이나 다른 코딩 오류가 있는 경우 코드 요소를 구문 분석할 수 없기 때문에 IntelliSense가 작동하지 않습니다. 해당 코드를 주석으로 처리하여 IntelliSense를 다시 사용할 수 있습니다.

  • 삽입 지점이 코드 주석 안에 있습니다.

    소스 파일의 주석 안에 삽입 지점이 있을 경우 IntelliSense 옵션을 사용할 수 없습니다.

  • 삽입 지점이 문자열 리터럴 안에 있습니다.

    다음과 같이 문자열 리터럴 주위의 따옴표 안에 삽입 지점이 있는 경우 IntelliSense 옵션을 사용할 수 없습니다.

    WHERE FirstName LIKE 'Patri%|'

  • 기능이 해제되어 있습니다.

    기본적으로 대부분의 IntelliSense 기능이 자동으로 작동하지만 어떤 기능이든 사용하지 않도록 설정할 수 있습니다.

단어 자동 완성 기능이 사용되지 않을 때도 다른 IntelliSense 기능을 사용할 수 있습니다. 자세한 내용은 Modifying IntelliSense Options을 참조하십시오.

Transact-SQL 편집기 고려 사항

다음은 Transact-SQL 편집기 관련 문제입니다.

  • Transact-SQL 편집기의 IntelliSense 기능이 일부 Transact-SQL 구문 요소를 지원하지 않습니다. 매개 변수 도움말은 일부 개체에서 확장 저장 프로시저 등의 매개 변수를 지원하지 않습니다. 자세한 내용은 IntelliSense에서 지원하는 Transact-SQL 구문을 참조하십시오.

  • SQL Server 2008 이전 버전의 SQL Server 데이터베이스 엔진에 연결되면 Transact-SQL 편집기에서 IntelliSense를 사용할 수 없습니다.

  • Transact-SQL 편집기가 프로젝트와 관련이 없고 Transact-SQL 편집기가 데이터베이스 엔진에 연결되지 않으면 Transact-SQL 편집기에서 IntelliSense를 사용할 수 없습니다.

  • SQLCMD 모드를 설정하면 Transact-SQL 편집기에서 IntelliSense가 해제됩니다.

  • IntelliSense 기능은 편집기 창이 데이터베이스에 연결된 후 다른 연결에서 만든 데이터베이스 개체를 처리하지 않습니다. 다음 세 가지 메커니즘 중 하나를 선택하여 편집기 창에 대한 개체 캐시를 새로 고칠 수 있습니다.

  • SQL Server 인스턴스에 연결된 경우 Transact-SQL 편집 세션 중에 사용자 또는 다른 사용자가 해당 인스턴스에서 CREATE, ALTER 또는 DROP 명령을 실행하면 IntelliSense 캐시에 변경 내용이 반영되지 않습니다. IntelliSense 캐시를 업데이트하려면 편집 메뉴를 선택하고 IntelliSense를 선택한 다음 로컬 캐시 새로 고침을 선택합니다. 

  • 바로 가기 키 Ctrl+K와 Ctrl+R을 차례로 사용합니다.

  • 사용 권한이 없는 데이터베이스 개체는 완성 목록에 포함되지 않습니다. IntelliSense 플래그는 사용 권한이 있는 개체를 참조합니다. 예를 들어, 다른 사용자가 작성한 스크립트를 열 경우 해당 스크립트를 작성한 사용자에게만 사용 권한이 있고 나에게는 사용 권한이 없는 개체에 대한 참조는 모두 잘못된 것으로 플래그가 지정됩니다.

  • SQL Server 인스턴스 연결이 끊어지면 완성 목록이 작동하지 않을 수 있습니다. 인스턴스에 다시 연결하십시오.

참고 항목

개념

Transact-SQL IntelliSense 개요

Transact-SQL 구분 기호 짝 맞추기 사용

Transact-SQL 코드 조각 사용

IntelliSense에서 지원하는 Transact-SQL 구문