Tôi cần tìm tất cả các khung nhìn & các thủ tục được lưu trữ tiêu thụ không chỉ một bảng nhất định, mà là một cột cụ thể trong một bảng.
"Dường như" hoạt động sau đây, nhưng có rất nhiều cảnh báo cần cẩn thận với phương pháp này (không đáng tin cậy vì nhiều lý do, sẽ sớm bị từ chối, v.v.):
SELECT object_name(so.id) TableName, sc.name ColumnName, OBJECT_NAME(sd.id) DependentObjectName,
(SELECT xtype FROM sysobjects so WHERE so.id = sd.id) Object_Type
FROM sysobjects so INNER JOIN syscolumns sc
ON so.id = sc.id
INNER JOIN sysdepends sd
ON so.id = sd.depid and sc.colid = sd.depnumber
WHERE
object_name(so.id) = 'MyTableName'
AND sc.name = 'MyColumnName'
order by object_name(so.id), Object_Type
Một số cách tiếp cận khác thường được tham chiếu là sys.sql_dependencies và sys.sql_expression_dependencies, nhưng cả hai cách này đều không có mức độ chi tiết của cột.
Có ai biết một cách làm điều này? (Hoặc ngay cả khi bạn biết chắc chắn rằng nó thực sự không thể được thực hiện, thì sẽ rất hữu ích khi biết.)
1
Ví dụ 2 của mẹo này là để tìm kiếm cấp cột.