我想我需要一些帮助,因为我没有想法。
在我的数据库中,我有一个像这样的简单表:
CREATE TABLE dbo.Invoices
(
CashDiscounts MONEY,
Cost MONEY
)
GO
Run Code Online (Sandbox Code Playgroud)
以及在 SELECT 上下文中使用此表的存储过程:
CREATE PROCEDURE Reporting.pLoadTest
AS
BEGIN
CREATE TABLE #t ( Test INT );
SELECT
Invoice.[CashDiscounts] AS [CashDiscounts]
, Invoice.[Cost] AS [Cost]
FROM dbo.Invoices AS Invoice
LEFT OUTER JOIN #t -- if you remove this join, dm_sql_referenced_entities should return also CashDiscounts and Cost attributes
ON 1=1
END
GO
Run Code Online (Sandbox Code Playgroud)
现在,我遇到的问题如下:我正在使用系统函数sys.dm_sql_referenced_entities来获取Reporting.pLoadTest使用的列列表。
SELECT *
FROM sys.dm_sql_referenced_entities ('Reporting.pLoadTest', 'OBJECT')
Run Code Online (Sandbox Code Playgroud)
我希望这个函数的结果是:
但是,当我加入 temp #t …