문제

여기에 이미지 설명

나는이 이상으로 내 시스템에서 버그를 추적했습니다. 적어도 그것은 유사하지만 불평등 한 스키마를 가진 15 개의 카탈로그 시스템의 나의 시스템에서의 이상입니다.

[information_schema]에서 [table_name]의 원인이됩니다. [View]가 [View_Definition]의 값과 다른 값과 다를 수 있습니까?

SQL Server에서보기 또는 시스템 테이블에 대해 뭔가를 이해하지 못한다고 생각합니다 ... .

도움이 되었습니까?

해결책

보기의 이름을 변경 한 경우 이름이 변경되지만 정의는 그렇지 않습니다.

DROP / CREATE 또는 ALTER를 마우스 오른쪽 버튼으로 클릭하거나 사용하지 않아도됩니다.

모든 모듈에 대해 실제로 예상되는 동작입니다.간단한 저장 프로 시저를 사용하여 빠른 테스트가 있습니다.

CREATE PROCEDURE dbo.proc_foo
AS
    SELECT 1;
GO

-- rename it to proc_bar

EXEC sys.sp_rename N'dbo.proc_foo', N'proc_bar', N'OBJECT';
GO

-- check the definition from various sources

SELECT od = OBJECT_DEFINITION(OBJECT_ID(N'dbo.proc_bar')),
    info_s = (SELECT ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES 
              WHERE ROUTINE_NAME = N'proc_bar' AND SCHEMA_NAME = N'dbo'),
    sql_m = (SELECT definition FROM sys.sql_modules 
             WHERE [object_id] = OBJECT_ID(N'dbo.proc_bar'));
.

결과 :

od                             info_s                         sql_m
-----------------------------  -----------------------------  -----------------------------
CREATE PROCEDURE dbo.proc_foo  CREATE PROCEDURE dbo.proc_foo  CREATE PROCEDURE dbo.proc_foo
AS                             AS                             AS
    SELECT 1;                      SELECT 1;                      SELECT 1;
.

어쨌든 sp_rename를 사용하면 안됩니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top