2017-04-22 3 views
3

SQL 서버에서 이상한 문제가 발생했습니다. "SPH_F2V_VEB_FIN-04-GLA-07 - 반전 및 취소 된 GL 게시"라는 이름의 db보기가 있지만 다음 쿼리를 실행할 때 이름이 변경된 정의가 나타납니다.SQL Server - 정의에서보기 이름이 실제보기 이름과 다릅니다.

SELECT object_definition (OBJECT_ID(N'dbo.SPH_F2V_VEB_FIN-04-GLA-07 - Reversed and Cancelled GL Postings')) 

출력 : 당신이 통지하는 경우, 이름이 변경

CREATE VIEW [dbo].[SPH_F2V_VEB_FIN-04-GLA-07 - Reversed & Cancelled GL Postings] AS 

SELECT 
    --GL1.[Business Unit], 
    GL1.[Company Code], 
    GL1.Description, 
.... 

"SPH_F2V_VEB_FIN-04-GLA-07 - &은 GL 게시물을 취소 반전"에, 변화 "와" "&". 처음에 그것은 "와" 관련된 SQL 변환 문제 또는 뭔가처럼 보였다,하지만 난 "와"와 "&"와 여러 의견을 시도, 그들은 예상대로 작동하는 것 같았다.

그럼 어떻게 될 수 있습니까? 나는 DB가 이것을 어떻게 허용하는지에 대해서도 회의적이다. 어떤 생각이라도 깊이 감사 할 것입니다 !!

+0

@GordonLinoff - 데이터베이스를 확인한 결과 '&'가있는보기가 없습니다. 그래서 그것은 단지 하나의 견해 일뿐입니다. –

답변

5

sp_rename을 사용하여보기의 이름을 바꾸면 이런 현상이 발생할 수 있습니다.

이름을 바꾸려면 이름을 삭제하고 만드는 것이 가장 좋습니다.

저장 프로 시저, 함수, 뷰 또는 트리거를 이름 바꾸기 sys.sql_modules 카탈로그 뷰 정의 열의 변화하지 해당 오브젝트 이름의 이름 것이다. 따라서 은 sp_rename을 사용하여 이러한 개체 유형의 이름을 바꾸지 않는 것이 좋습니다. 대신 을 놓은 다음 새 이름으로 개체를 다시 만드십시오.

+0

당신 말이 맞아요. 그래서, 그들은 말한다, ** 경고는 주문 다음에 온다 ** –