Với quan điểm này:
CREATE VIEW viewTest
AS
SELECT
books.id,
books.author,
Books.title AS Name
FROM
Books
Những gì tôi có thể thấy, bạn có thể lấy các cột được sử dụng và các bảng được sử dụng bằng cách thực hiện việc này:
SELECT *
FROM INFORMATION_SCHEMA.VIEW_COLUMN_USAGE AS UsedColumns
WHERE UsedColumns.VIEW_NAME='viewTest'
SELECT *
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE AS UsedTables
WHERE UsedTables.VIEW_NAME='viewTest'
Đây là dành cho máy chủ sql 2005+. Xem tài liệu tham khảo tại đây
Chỉnh sửa
Đưa ra cùng một quan điểm. Hãy thử truy vấn này:
SELECT
c.name AS columnName,
columnTypes.name as dataType,
aliases.name as alias
FROM
sys.views v
JOIN sys.sql_dependencies d
ON d.object_id = v.object_id
JOIN .sys.objects t
ON t.object_id = d.referenced_major_id
JOIN sys.columns c
ON c.object_id = d.referenced_major_id
JOIN sys.types AS columnTypes
ON c.user_type_id=columnTypes.user_type_id
AND c.column_id = d.referenced_minor_id
JOIN sys.columns AS aliases
on c.column_id=aliases.column_id
AND aliases.object_id = object_id('viewTest')
WHERE
v.name = 'viewTest';
Nó trả về cái này cho tôi:
columnName dataType alias
id int id
author varchar author
title varchar Name
Điều này cũng được thử nghiệm trong sql 2005+