Tôi có yêu cầu nhận tất cả tên bảng cơ sở dữ liệu được sử dụng trong quy trình được lưu trữ cụ thể?Làm thế nào để có được tất cả (các) tên bảng được sử dụng trong quy trình được lưu trữ cụ thể?
Ví dụ: Tôi có một quy trình được lưu trữ như được đưa ra bên dưới.
CREATE PROCEDURE [dbo].[my_sp_Name]
@ID INT = NULL
AS
BEGIN
SELECT ID, NAME, PRICE
FROM tbl1
INNER JOIN tbl2 ON tbl1.ProductId = tbl2.ProductId
LEFT JOIN tbl3 ON tbl2.ProductSalesDate = tbl3.ProductSalesDate
LEFT JOIN tbl4 ON tbl1.ProductCode = tbl4.ItemCode
END
sản lượng dự kiến:
Used_Table_Name
- tbl1
- tbl2
- tbl3
- tbl4
Có thể ai đề xuất một cách?
'exec sp_depends [ProcedureName]' – artm
@artm, Cảm ơn nhận xét, Trả về tất cả các loại đối tượng cơ sở dữ liệu được sử dụng. Ngoài ra nó không trả về giá trị khác biệt. –
[Câu trả lời của Mansoor] (http://stackoverflow.com/a/43177867/15498) sẽ là một lựa chọn tốt hơn vì nó không sử dụng [* legacy views *] (https://technet.microsoft.com/en- chúng tôi/thư viện/ms190325 (v = sql.110) .aspx) mà bạn không nên sử dụng trong bất kỳ mã mới được viết nào –