需要从不包含隐藏 graph_id 列的 SQL Server Graph Table 创建视图

Posted

技术标签:

【中文标题】需要从不包含隐藏 graph_id 列的 SQL Server Graph Table 创建视图【英文标题】:Need to create a view from a SQL Server Graph Table that does not include the hidden graph_id column 【发布时间】:2021-09-03 21:56:24 【问题描述】:

该表是作为一个节点创建的,因此 SQL Server 在其他列之间添加了一个 graph_id_xxxxxx 列。我用以下句子创建了一个视图:

CREATE VIEW FILE_VIEW1 AS
SELECT
      [NAME]
FROM [dbo].[FILE_NAME]

但是当我看到视图中的列时,graph_id_xxxx 列仍然存在,即使它不是视图中选择语句的一部分。

不胜感激。

【问题讨论】:

【参考方案1】:

虽然这些列出现在视图的 sys.columns 中(不知道为什么),但当您从视图中select * 时,它们无法访问并且不会出现。

CREATE TABLE Person (ID INTEGER PRIMARY KEY, Name VARCHAR(100), Age INT) AS NODE;
CREATE TABLE friends (StartDate date) AS EDGE;
go
create view vPerson as select Name from Person
go
select * from Person 
select * from vPerson

您可以通过将图表查询推送到视图中的子查询表达式中来从视图元数据中消除它们,例如

create or alter view [dbo].[vPerson] as 
with q as (select Name from Person)
select * from q

【讨论】:

谢谢,这正是我需要的。

以上是关于需要从不包含隐藏 graph_id 列的 SQL Server Graph Table 创建视图的主要内容,如果未能解决你的问题,请参考以下文章

Oracle PL/SQL 过程/函数来创建包含列的视图

Presto 数组包含来自另一列的值(超集 SQL 查询)

Oracle OBIEE (BI):将不带隐藏列的分析结果导出到 CSV

如何从不是数据库中的列的实体中返回额外的字段?

在不知道 SQL 中的列的情况下创建表

需要根据日期范围参数包含不同列的报告