2017-03-14 1 views
0

SQL Server 2008 R2에서 정상적으로 작동하는 쿼리를 가져 오는 데 문제가 있으며 2014로 업그레이드 한 후 더 이상 쿼리를 수행하지 않습니다. 어떤 도움을 주시면 감사하겠습니다. 내가지고있어 오류 :SQL 쿼리 문제 - msg 213

메시지 213, 수준 16, 상태 7, 줄 1
열 이름 제공된 값의 개수 나 테이블 정의와 일치하지 않습니다.


DBCC 실행 완료. DBCC에서 오류 메시지를 인쇄 한 경우 시스템 관리자에게 문의하십시오.

) 

쿼리가 모두 함께 약 10 페이지입니다 ...

use AccessControl 
set nocount on 

declare @MaintResults table 
(
Result int identity(1,1), 
Cardholder_Count varchar(15), 
Events_Count varchar(15), 
User_Count varchar(15), 

등 : 여기

는 쿼리입니다. 그 목적은 적절한 양의 정보를 데이터베이스에서 임시 테이블로 가져 와서 볼 수있는 곳입니다. 솔직히 왜 데이터베이스의 이름이 실제로 "AccessControl"이기 때문에이 문제가 발생하는지 확신 할 수 없습니다. 그렇다면 왜 내가 오류가 발생합니까?

+1

1, 2)'또는 그 반대입니다. 즉 값보다 많은 열 또는 열보다 값이 많습니다. – PeteGO

+1

검색어를 위로 나눠서 위치를 찾아보십시오. – PeteGO

답변

0

우리를 위해이 문제를 해결하려면 전체 내용을 확인해야합니다. 당신이

  • 변수 테이블에 삽입하지만 당신은 아무것도 언급하지 않는 경우 중 하나는 컬럼의 다른 번호를 선택하는 오류 상태로 일반으로

    는 SQL 서버로 업그레이드를 제외하고 변경

그렇지 않으면 select 문에있는 유형 중 하나가 더 이상 테이블 변수와 호환되지 않습니다. 이것은 하나 또는 두 개의 필드가 선택 및 삽입 문에서 잘못 된 것처럼 간단 할 수 있습니다.

OP의 많은 정보가 없으면이 문제의 원인을 너무 자세히 분석하지는 않지만 DB를 업그레이드하고 응용 프로그램이 스키마를 유지 관리하는 경우 일부 사소한 스키마 변경도 도입 될 수 있습니다. 이전 버전에서 작동했던 일부 암시 적 유형 변환은 더 이상 지원되지 않습니다.

테이블 변수를 단독으로 채우려면 선택 항목을 실행하고 유형이 정상이며 테이블 변수와 일치하는지 수동으로 검토하십시오.

당신은보기로 선택을 저장하여 부정 행위를 한 후 변수 테이블에 뷰의 열 정의를 비교할 수 있습니다

메시지 어딘가에 당신이`X INTO INSERT (COL1) 가치 같은 것을 (이 제안