2012-08-15 8 views
0

hase는 여러 테이블에서 특정 열을 선택하여 조인하는 뷰입니다. 최근에 테이블 중 하나에 열을 추가했는데 vew가 더 이상 올바르게 작동하지 않았습니다. 쿼리 결과의 열 중 하나에 테이블의 다른 열의 데이터가 들어있었습니다. 스크립트에서보기를 다시 작성했지만 스크립트는 변경하지 않고 문제가 해결되었습니다. 뷰가 새 열을 보지 않습니다.이상한 SQL 동작

무슨 일입니까?

+0

테이블을 게시하고 원하는 조인 및보기에서 원하는 필드를 입력하면 글을 쓸 수 있습니까? – JonH

+1

테이블 구조 및 SQL 문에 대한 자세한 정보를 게시하십시오. 우리는 무슨 일이 일어나는지 알아낼 수 있습니다. – Charx

+0

"더 이상 올바르게 작동하지 않음"과 "문제가 해결되었습니다"는 의미는 무엇입니까? 보기가'SELECT *'을 사용합니까? http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/10/bad-habits-to-kick-using-select-omitting-the-column-list.aspx –

답변

0

검색어가 SELECT *를 사용 중입니다. 당신은 단순히 그것을 다시 작성해야합니다.

뷰를 컴파일하면 필드의 이름이 아니라 레코드의 필드 오프셋이 컴파일됩니다. 원본으로 사용하는 테이블이 변경된 경우 . . 음, 오프셋은 더 이상 정확한 위치로 이동하지 않습니다.

저는 불행히도 숫자가 왜 숫자 오류가 발생했는지 알아 내려고 약 5 시간 후에 한 번씩 이것을 배웠습니다. 오전 6 시부 터 시작합니다. 따라서이 문제는 다른 유형의 데이터 .

SQL Server Management Studio를 사용하여 뷰를 스크립팅하고 다시 변경하지 않고 코드를 실행하여 다시 컴파일합니다. 그러나 명시 적으로 열 목록을 넣고 나중에이 문제가 발생하지 않도록 코드를 변경할 수 있습니다.

앞으로도이 문제가 발생하지 않도록 매일 저녁 모든보기를 다시 컴파일하는 스크립트를 설정할 수도 있습니다. 우리는 이제 그런 스크립트도 가지고 있습니다.

+0

예, 테이블 중 하나가 *를 사용하며 문제가되는 것 같습니다. –