programing

SQL Server(2008)에서 특정 테이블을 사용하는 뷰를 찾는 방법은 무엇입니까?

javamemo 2023. 10. 27. 21:40
반응형

SQL Server(2008)에서 특정 테이블을 사용하는 뷰를 찾는 방법은 무엇입니까?

테이블에 몇 개의 열을 추가해야 하고 이 열을 이 테이블을 사용하는 모든 보기에 추가해야 합니다.

특정 테이블을 사용하는 데이터베이스의 모든 보기 목록을 얻을 수 있습니까?

이렇게 하면 됩니다.

SELECT * 
FROM   INFORMATION_SCHEMA.VIEWS 
WHERE  VIEW_DEFINITION like '%YourTableName%'

테이블 종속성을 찾으려면 sys를 사용하면 됩니다.sql_expression_dependency 카탈로그 보기:

SELECT DISTINCT
referencing_object_name = o.name, 
referencing_object_type_desc = o.type_desc, 
referenced_object_name = referenced_entity_name, 
referenced_object_type_desc =so1.type_desc 
FROM sys.sql_expression_dependencies sed 
INNER JOIN sys.views o ON sed.referencing_id = o.object_id 
LEFT OUTER JOIN sys.views so1 ON sed.referenced_id =so1.object_id 
WHERE referenced_entity_name = 'Person'  

ApexSQL Search a free SSMS 및 View Dependencies 기능이 있는 VS add-in을 사용해 볼 수도 있습니다.종속성 보기 기능은 암호화된 개체와 시스템 개체, SQL Server 2012 특정 개체, TDE(Transparent Data Encryption)로 암호화된 데이터베이스에 저장된 개체 등 모든 SQL 데이터베이스 개체의 관계를 시각화할 수 있습니다.

이 방법이 더 효과적이라고 생각합니다.

SELECT type, *
FROM sys.objects
WHERE OBJECT_DEFINITION(object_id) LIKE '%' + @ObjectName + '%'
AND type IN ('V')
ORDER BY name

필터링VIEW_DEFINTION안에서.INFORMATION_SCHEMA.VIEWS꽤 많은 거짓 긍정을 주고 있어요

데이터베이스 개체(예: 테이블, 열, 트리거)를 이름으로 찾아야 하는 경우 SQL 검색이라는 FREE Red-Gate 도구를 살펴보십시오. 이 도구는 전체 데이터베이스에서 문자열의 종류를 검색합니다.

enter image description here

enter image description here

이 툴은 모든 DBA나 데이터베이스 개발자에게 꼭 필요한 툴입니다. 이미 어떤 종류의 용도로도 무료로 사용할 수 있다고 말했었나요?

SELECT VIEW_NAME
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE
WHERE TABLE_NAME = 'Your Table'

테이블을 선택합니다 -> 종속성 보기 -> 의존하는 개체

아래 쿼리를 사용하여 tableName에 대한 사용된 뷰 또는 저장 프로시저를 찾는 가장 간단한 방법 -

exec dbo.dbsearch 'Your_Table_Name'

언급URL : https://stackoverflow.com/questions/9618134/how-to-find-which-views-are-using-a-certain-table-in-sql-server-2008

반응형