복붙노트

[SQL] SQL Server 리포트 '잘못된 열 이름',하지만 열이 존재하고 쿼리 관리 스튜디오를 통해 작동합니다

SQL

SQL Server 리포트 '잘못된 열 이름',하지만 열이 존재하고 쿼리 관리 스튜디오를 통해 작동합니다

나는 막 다른 골목 약간의 충돌했습니다. 좀 C # 코드에 의해 생성되는 쿼리가 있습니다. 동일한 데이터베이스에 대해 실행할 때 쿼리는이 Microsoft SQL Server Management Studio에서 잘 작동합니다.

그러나 내 코드는 내가 잘못된 컬럼에 대한 동일한 오류가 동일한 쿼리를 실행하려고하고 예외가 발생하는 경우. 이 열을 참조하는 모든 쿼리는 실패합니다.

문제의 열은 최근에 데이터베이스에 추가되었습니다. 그것은 Incident_Begin_Time_ts라는 날짜 열입니다.

실패 예는 다음과 같습니다

select * from PerfDiag 
where Incident_Begin_Time_ts > '2010-01-01 00:00:00';

선택 MAX (Incident_Being_Time_ts)와 같은 다른 쿼리; 이 열이없는 생각하기 때문에 코드를 실행하는 경우도 실패합니다.

어떤 아이디어?

해결법

  1. ==============================

    1.난 당신이 같은 이름을 가진 두 개의 테이블이 있다고 생각한다. 하나는 스키마 'dbo가'(dbo.PerfDiag)에 의해 소유되고, 다른 하나는 SQL 서버 (userid.PerfDiag 같은)에 연결하는 데 사용되는 계정의 기본 스키마가 소유하고 있습니다.

    난 당신이 같은 이름을 가진 두 개의 테이블이 있다고 생각한다. 하나는 스키마 'dbo가'(dbo.PerfDiag)에 의해 소유되고, 다른 하나는 SQL 서버 (userid.PerfDiag 같은)에 연결하는 데 사용되는 계정의 기본 스키마가 소유하고 있습니다.

    스키마 이름으로 규정되지 않은 한 - - (예 : 테이블 등) 스키마 객체에 대한 규정 화되지 않은 참조가되면 객체 참조가 해결해야합니다. 이름 확인 지정된 이름 적절한 유형 (테이블)의 목적은 다음 순서로 검색하여 일어난다. 이름은 첫 경기에 해결합니다

    규정되지 않은 기준은 상기 시퀀스에서 첫 번째 매치에 결합된다.

    일반적인 권장 사례로서, 하나는 항상 성능상의 이유로 스키마 객체에 대한 참조를 한정해야한다 :

    [참고로 상기 편집]

    다른 가능성은 (특별한 순서없이)입니다 :

    더블은 연결 문자열을 확인하고 명시 적으로 SQL Server 인스턴스 이름과 데이터베이스 이름을 지정했는지 확인하십시오.

  2. ==============================

    2.그냥 Ctrl + Shift + R를 눌러 볼 ...

    그냥 Ctrl + Shift + R를 눌러 볼 ...

    SQL Server Management Studio를, Ctrl 키 + 시프트 + R 새로 고침 로컬 캐시합니다.

  3. ==============================

    3.이 방울 / 변경합니다 테이블 전에이 내부 거래와 SQL 문을 실행하는 경우 당신은 또한이 메시지를 얻을 수 있습니다.

    이 방울 / 변경합니다 테이블 전에이 내부 거래와 SQL 문을 실행하는 경우 당신은 또한이 메시지를 얻을 수 있습니다.

  4. ==============================

    4.나는 결국 셧다운 및 Microsoft SQL Server Management Studio를 다시 시작; 그것은 나를 위해 그것을 해결했습니다. 그러나 다른 시간에, 단지 새 쿼리 창에 충분했다 시작.

    나는 결국 셧다운 및 Microsoft SQL Server Management Studio를 다시 시작; 그것은 나를 위해 그것을 해결했습니다. 그러나 다른 시간에, 단지 새 쿼리 창에 충분했다 시작.

  5. ==============================

    5.당신이 당신의 컬럼과 동일한 이름을 가진 변수를 사용하는 경우, 당신이 '@'변수 마커를 잊었 수 있습니다. INSERT 문에서 그것은 열로 감지됩니다.

    당신이 당신의 컬럼과 동일한 이름을 가진 변수를 사용하는 경우, 당신이 '@'변수 마커를 잊었 수 있습니다. INSERT 문에서 그것은 열로 감지됩니다.

  6. ==============================

    6.그냥 똑같은 문제가 있었다. 본인은 동일한 코드의 다른 부분에서 사용하는 임시 테이블에 몇 가지 별칭 열을 이름. 어떤 이유로,이 SQL Server 관리 Studio에 의해 포착되지 않았고 그것은 잘못된 열 이름에 대해 불평했다.

    그냥 똑같은 문제가 있었다. 본인은 동일한 코드의 다른 부분에서 사용하는 임시 테이블에 몇 가지 별칭 열을 이름. 어떤 이유로,이 SQL Server 관리 Studio에 의해 포착되지 않았고 그것은 잘못된 열 이름에 대해 불평했다.

    내가 단순히 한 것은이 새 쿼리에 기존 쿼리의 SQL 코드를 붙여 복사하고 다시 실행, 새 쿼리를 만드는 것입니다. 이 올바르게 환경을 새로 고칠 것 같았다.

  7. ==============================

    7.내 경우에는 내가 마이크로 소프트 SQL Server Management Studio를 다시 시작하고이 나를 위해 잘 작동합니다.

    내 경우에는 내가 마이크로 소프트 SQL Server Management Studio를 다시 시작하고이 나를 위해 잘 작동합니다.

  8. ==============================

    8.내 경우에는 내가 여러 SQL 문을 쿼리 할 때 잘못 된 ResultSet에서 값을 얻으려고 노력했다.

    내 경우에는 내가 여러 SQL 문을 쿼리 할 때 잘못 된 ResultSet에서 값을 얻으려고 노력했다.

  9. ==============================

    9.내 경우에는이 문제가 이상한 캐싱 문제였다 보인다. 솔루션은 위의 작동하지 않았다.

    내 경우에는이 문제가 이상한 캐싱 문제였다 보인다. 솔루션은 위의 작동하지 않았다.

    코드가 잘 작동하고 당신은 당신의 테이블 중 하나에 열을 추가하고 그것은 '잘못된 열 이름'오류를 제공하고, 솔루션을 위하지 작업이 시도 할 경우 : 수정 된 것을 만들기위한 첫 번째 실행을 코드의 섹션을 다음 테이블은 전체 코드를 실행합니다.

  10. ==============================

    10.이 구글의 "잘못된 열 이름 SQL"의 최고 결과이고 내가 여기이 답을하지 않았기 때문에이 답변을 포함. 내가 엔티티 프레임 워크 C # 코드 내 .HasForeignKey 문에서 잘못된 ID를 사용했기 때문에 내 경우에는, 내가 잘못된 열 이름, Id1에를 얻고 있었다. 나는 .HasOne () 객체의 ID를 일치하도록 변경하면 오류가 사라졌다.

    이 구글의 "잘못된 열 이름 SQL"의 최고 결과이고 내가 여기이 답을하지 않았기 때문에이 답변을 포함. 내가 엔티티 프레임 워크 C # 코드 내 .HasForeignKey 문에서 잘못된 ID를 사용했기 때문에 내 경우에는, 내가 잘못된 열 이름, Id1에를 얻고 있었다. 나는 .HasOne () 객체의 ID를 일치하도록 변경하면 오류가 사라졌다.

  11. ==============================

    11.테이블 값을 사용하여 스칼라 함수를 실행할 때이 오류를받은 적이 있지만 내 스칼라 함수의 RETURN 절에있는 SELECT 문은 "테이블에서"부분을 누락되었습니다. : facepalms :

    테이블 값을 사용하여 스칼라 함수를 실행할 때이 오류를받은 적이 있지만 내 스칼라 함수의 RETURN 절에있는 SELECT 문은 "테이블에서"부분을 누락되었습니다. : facepalms :

  12. ==============================

    12.또한 당신은 ConnectionString을 변경하고 로컬의 변경 사항에 대해 아무 생각이없는 테이블을 요청하는 것을 잊지 때 발생합니다.

    또한 당신은 ConnectionString을 변경하고 로컬의 변경 사항에 대해 아무 생각이없는 테이블을 요청하는 것을 잊지 때 발생합니다.

  13. from https://stackoverflow.com/questions/7260487/sql-server-reports-invalid-column-name-but-the-column-is-present-and-the-quer by cc-by-sa and MIT license