问题标签 [graph-table]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
71 浏览

sql-server - SQL Server Graph Tables - 浏览某些节点以找到结束

我有一个包含 2 个节点表和 1 个边缘表的图表结构。

Symptom表是 Node 表,Syndrome_Causes是 Edge 表。此外,还有另一个名为Syndrome的节点表。

我的目标是有一个查询,我可以遍历我的图,通过特定的节点。

我编写了以下查询以向您显示所有可能的路线,从“心血管”节点开始,但我需要过滤掉通过路径的结果,在下图中用红色下划线(心血管->心悸->持续时间->间隔->天)。

在此处输入图像描述

我曾考虑在WHERE子句中添加另一个过滤条件,但我不知道如何编写它,以便我限制节点仅通过“链接”列中的值。

请注意,我知道,我可以将链接列中的值传递给它以过滤行并让我获得列中的“天”值last_match,但我的目的是通过遵循特定路径通过节点来过滤它(验证) ,如下所示:

但是,这给出了一个错误:

别名或标识符“s2.symptom_name”不能用于选择列表、排序依据、分组依据或具有上下文。

那么,有没有办法限制路径搜索通过某些节点?

0 投票
0 回答
173 浏览

sql-server - 在 Visual Studio 数据库项目中使用图形查询时的警告

我们有一些 SQL“普通”表和图表,一个在它们之间同步信息的脚本。

SSMS 一切正常,但是在 Visual Studio 中使用 msbuild 构建数据库项目时,我们会收到警告(请参阅下面的代码和警告详细信息)。

如果我们设置TreatTSqlWarningsAsErrors为 True,这些警告就会变成错误。

我们不想忽略警告,但不清楚我们为什么会收到警告。这些警告是否正确?

为什么它们只显示在 Visual Studio 中而不显示在 SSMS 中?

我们如何在不忽略它们的情况下解决它们?

细节:

我们有以下两个“正常”的 SQL 表:

我们创建了以下 SQL 图形模式以及两个 SQL 节点表和一个 SQL 边:

一个同步存储过程,它将从每天执行的“正常”表中填充节点和边缘。

附上部分:

以及以下脚本更新边缘的 IsActive 列,以防“正常”表中不再存在关系(我们不想从图形节点/边缘中删除它)

我们在 VS 2019 中创建了一个数据库项目,设置如下:

从 SSMS 开始,一切都很完美。

问题在于最后一个语法(UPDATE isof.active)我收到以下警告:

警告 SQL71502:过程:[graph].[SyncEngagementContentGraphs] 对对象 [graph].[isOf].[N] 的引用未解析。图\存储过程\SyncEngagementContentGraphs.sql 57

警告 SQL71502:过程:[graph].[SyncEngagementContentGraphs] 对对象 [graph].[isOf].[N] 的引用未解析。图\存储过程\SyncEngagementContentGraphs.sql 58

警告 SQL71509:模型已经有一个同名的元素 NodeCTE.$node_id。图\存储过程\SyncEngagementContentGraphs.sql 47

警告 SQL71509:模型已经有一个同名的元素 NodeCTE.$node_id。图\存储过程\SyncEngagementContentGraphs.sql 48

如果我们将 TreatTSqlWarningsAsErrors 设置为 True,这些警告就会变成错误,从长远来看,我们不能这样(设置为 False)。