>

만들어야 할 많은 뷰가 있습니다. 이러한 견해 중 다수는 다른 견해에 의존합니다.

아직 생성되지 않은보기에 의존하는보기를 만들면잘못된 개체오류가 발생합니다

전체 작업을 수행하고 종속성을 해결 한 다음 올바른 순서로 모든 항목을 작성하는 대신 모든보기가 작성 될 때까지이 확인 기능을 해제 할 수 있습니까?

보기가 설치된 후 종속보기를 삭제할 수 있으므로 데이터베이스가 존재하지 않는 오브젝트에 의존하는보기가 존재하는 상태에있을 수 있습니다. 창조하는 동안이 상태에있는 것을 받아 들여야합니다 ..

  • 답변 # 1

    내가 아는 한 그 뷰에서 참조 된 객체가없는 뷰를 만들 수 없다

    당신의 견해에 대한 의존성이 무엇인지 아는 것이 왜 그렇게 고통 스러운가?만들기입니까?

    이미 다른 데이터베이스에 존재합니까? 그렇다면 SSMS 또는 SMO를 사용하여 종속성 순서대로 스크립트를 작성하고이 문제를 무시할 수 있습니다.

  • 답변 # 2

    보기가 존재하는 데이터베이스에 액세스 할 수있는 경우 sys.views를 조회하여 순서를 결정할 수 있습니다. 어디에서 만들어 졌는지 아래 쿼리가 도움이 될 것입니다. 목록이 도움이 될 경우 필터링하는 조건자를 추가하십시오.

    SELECT v.name   
    FROM sys.views v
    ORDER BY v.create_date
    
    

  • 답변 # 3

    병리 적으로 게으른 다른 솔루션-CREATE 대신 CREATE OR ALTER를 사용하십시오.잘못된 객체오류가 없을 때까지보기 스크립트를 반복해서 실행하십시오.

    종속성이없는 각 반복 뷰에서 이전 반복에서 종속성이 만족 된 뷰는 성공합니다. OR ALTER 비트는 이전 라운드에서 생성 된 객체를 수용합니다. 따라서 모든 라운드가 끝날 때까지 더 많은 물체가 존재합니다.

    SQL Server 2016 +.

  • 이전 query - 이 행과 관련된 속성을 가진 다른 행을 계산하는 MySQL 계산 열
  • 다음 mysql - 여러 개의 LEFT JOIN 후에 NULL이 아닌 행을 어떻게 필터링합니까?