我对此事进行了一些研究,但还没有解决方案。我想得到的是视图中的列级依赖关系。所以,假设我们有一个这样的表
create table TEST(
first_name varchar(10),
last_name varchar(10),
street varchar(10),
number int
)
和这样的观点:
create view vTEST
as
select
first_name + ' ' + last_name as [name],
street + ' ' + cast(number as varchar(max)) as [address]
from dbo.TEST
我想要的是这样的结果:
column_name depends_on_column_name depends_on_table_name
----------- --------------------- --------------------
name first_name dbo.TEST
name last_name dbo.TEST
address street dbo.TEST
address number dbo.TEST
我已经尝试过sys.dm_sql_referenced_entities
函数,但是referencing_minor_id
对于视图来说总是为0。
select
referencing_minor_id,
referenced_schema_name + '.' + referenced_entity_name as depends_on_table_name,
referenced_minor_name as depends_on_column_name
from sys.dm_sql_referenced_entities('dbo.vTEST', 'OBJECT')
referencing_minor_id depends_on_table_name depends_on_column_name
-------------------- --------------------- ----------------------
0 dbo.TEST NULL
0 dbo.TEST first_name
0 dbo.TEST last_name
0 dbo.TEST street
0 dbo.TEST number
无论是sys.sql_expression_dependencies
过时的还是过时的,都是如此sys.sql_dependencies
。
那么,我会错过某些事情吗?还是做不到?
编辑1 :我试图使用DAC来查询此信息是否存储在系统基本表中的某个位置,但是找不到
此解决方案只能部分回答您的问题。它不适用于作为表达式的列。
您可以使用sys.dm_exec_describe_first_result_set获取列信息:
@include_browse_information
如果设置为1,则将对每个查询进行分析,就像在查询中具有FOR BROWSE选项一样。返回其他键列和源表信息。
CREATE TABLE txu(id INT, first_name VARCHAR(10), last_name VARCHAR(10));
CREATE TABLE txd(id INT, id_fk INT, address VARCHAR(100));
CREATE VIEW v_txu
AS
SELECT t.id AS PK_id,
t.first_name AS name,
d.address,
t.first_name + t.last_name AS name_full
FROM txu t
JOIN txd d
ON t.id = d.id_fk
主要查询:
SELECT name, source_database, source_schema,
source_table, source_column
FROM sys.dm_exec_describe_first_result_set(N'SELECT * FROM v_txu', null, 1) ;
输出:
+-----------+--------------------+---------------+--------------+---------------+
| name | source_database | source_schema | source_table | source_column |
+-----------+--------------------+---------------+--------------+---------------+
| PK_id | fiddle_0f9d47226c4 | dbo | txu | id |
| name | fiddle_0f9d47226c4 | dbo | txu | first_name |
| address | fiddle_0f9d47226c4 | dbo | txd | address |
| name_full | null | null | null | null |
+-----------+--------------------+---------------+--------------+---------------+
DBFiddleDemo
问题内容: 我正在寻找一种列出数据库中所有视图的方法。 最初,我在MySQL论坛上找到并尝试了一个答案: 这怎么行不通,返回一个空集。(我知道他们在那里!) 这些也会失败: 为什么这不起作用? 问题答案: MySQL查询以查找数据库中的所有视图
问题内容: 我想在列表上有一个反向列表视图(以与在列表上提供子列表视图类似的方式)。是否有提供此功能的功能? 我既不想复制列表,也不想修改列表。 在这种情况下,如果我至少可以在列表上获得一个反向迭代器就足够了。 另外,我知道自己如何实施。我只是问Java是否已经提供了类似的东西。 演示实现: 我刚刚发现有些实现正是我所需要的。尽管没有通用的实现。这有点奇怪,因为我所见过的实现足以与任何实现一起使用
问题内容: 我正在尝试从烧瓶视图获取url参数: 如何从视图中获取? 问题答案: 你可以使用以下方法检索查询字符串变量 要么 你要接收的查询字符串中的变量在哪里。
我有集合视图,我想在scrollViewDidScroll方法中获取当前可见的(最可见的单元格)索引路径。
问题内容: 使用angular时,在视图内获取对象的首选方法是什么? 看起来好像有这个项目,但是看起来维护得不好。 https://github.com/gdi2290/angular- momentjs 问题答案: 有一个更受欢迎的angular-moment项目… https://github.com/urish/angular- moment 有了它,您可以像这样注入瞬间… jsfiddle
问题内容: 在jsoup中,返回Element的所有子代(后代)。但是,我想要Element的一级子级(直系子级)。 我可以使用哪种方法? 问题答案: Element.children()仅返回直接子代。由于您将它们绑定到树上,因此它们也有孩子。 如果需要直接子元素而没有底层树结构,则需要按以下方式创建它们 输出量