获取用户定义函数中使用的表

时间:2014-08-01 09:21:53

标签: sql-server-2008

是否可以获取用户定义函数中使用的所有表和视图?是否有任何已定义的过程通过传递udf名称来获得它?

create function sample_function
return table
as
return
   select *
   from table1 t1
   join table2 t2 on t2.id = t1.id

当我将table1传递给任何程序时,我需要获得table2sample_function

任何想法都会有所帮助。

1 个答案:

答案 0 :(得分:0)

希望这有帮助。

SELECT DISTINCT referenced_entity_name FROM sys.dm_sql_referenced_entities('dbo.fn_sample','OBJECT')

编辑: 使用以下查询,仅获取引用的表

SELECT DISTINCT referenced_entity_name 
FROM sys.dm_sql_referenced_entities('dbo.fn_sample','OBJECT') ro
    INNER JOIN sysobjects so ON (ro.referenced_id = so.id)
WHERE so.xtype = 'U'