뷰의 각 열에 대해 행을 반환하는 쿼리를 원한다. 보기 자체.뷰의 각 열 (필드)에 대한 기본 테이블과 기본 열 (필드)을 반환하는 SQL Server (2005+) 쿼리
결과에 현재 행의 열에 대한 기본 테이블을 제공하는 열 기반 테이블과 열 이름이있는 열의 기본 쿼리에있는 열 이름을 제공하는 결과의 기본 열이 있어야합니다. 어떤 계산도 기본 필드 열에 포함될 수 있다면 보너스가됩니다.
나는 이것을 할 수 없다고 생각합니다. 내가 잘못?
"여기에 무엇이 있습니까"는 basetable 열에서 적절하게 table1 또는 table2로 바뀌고 basefield 열에서 적절하게 a, b 또는 c로 대체되어야합니다.
create table table1 (a int, b int) create table table2 (a int, c int) go create view view1 as select table1.a, table1.b, table2.c from table1 left join table2 on table1.a = table2.a go select * from ( select 'View' objecttype,O.name viewname,'' fieldname,0 column_id,'' typename,'' max_length,'' [precision], '' scale, '' is_identity, 'what goes here' basetable, '' basefield from sys.objects O where O.type='V' and O.[schema_id] = 1 union all select 'Field' objecttype,object_name(C.[object_id]) viewname,C.name fieldname,C.column_id,T.name typename,C.max_length,C.precision,C.scale,C.is_identity, 'what goes here' basetable, 'what goes here' basefield from sys.columns C left join sys.types T on C.user_type_id=T.system_type_id where C.[object_id] in (select O.[object_id] from sys.objects O where O.type='V') ) I where viewname in ('view1') order by viewname, column_id drop view view1 drop table table1 drop table table2
그래, 그게 보너스 야. 계산 된 필드에 대한 계산으로 나에게 돌아올 수 있다면. SQL Server가 이미 파싱을 기반으로하는 방법이 있는지 궁금해 할 것입니다. 쿼리를 실행할 수 있다는 사실은 이것이 가능하다는 것을 의미합니다. –
그러나 뷰를 고려할 때 얻는 방법은 여러 Tabble 간의 조인이 포함 된 직선 쿼리입니까? – Kangkan