首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将现有表转换为SQL图形节点或边

将现有表转换为SQL图形节点或边
EN

Stack Overflow用户
提问于 2019-08-21 17:26:51
回答 2查看 923关注 0票数 4

使用现有的数据库,使用已实现的外键,我希望使用SQL Server 2017的SQL Graph新功能。首先,我想将一些现有的表转换为Node或Edge表。执行这种迁移的最简单方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-05 23:43:30

只需创建节点和边缘表作为附加的独立表即可。给他们一个FK到你现有的表。这样,图形会引用您的表,但不会修改现有的表。

票数 0
EN

Stack Overflow用户

发布于 2019-08-21 17:55:50

https://argonsys.com/microsoft-cloud/library/graph-data-processing-with-sql-server-2017/

是否可以将现有表更改为节点表或边缘表?

不是的。在第一个版本中,不支持ALTER TABLE将现有关系表转换为节点表或边缘表。用户可以创建节点表并使用INSERT INTO…选择从以将数据填充到节点表中。要从现有表填充边缘表,必须从节点表获得适当的$from_id和$to_id值。

1)节点表:

您必须禁用外键。How can foreign key constraints be temporarily disabled using T-SQL?,然后制作表的副本,删除它,将其重新创建为节点,插入数据,最后将外键切换回。

代码语言:javascript
运行
复制
-- disable all constraints
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"

SELECT * 
INTO COPY_OF_REF_LOTS
FROM REF_LOTS;

DROP TABLE REF_LOTS;

CREATE TABLE REF_LOTS (ID INT PRIMARY KEY IDENTITY(1,1), myvalue varchar(100)) AS NODE;

INSERT INTO REF_LOTS
SELECT * FROM COPY_OF_REF_LOTS;

DROP TABLE COPY_OF_REF_LOTS;

-- enable all constraints
exec sp_MSforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"

2)边缘表:

按照https://www.sqlshack.com/implement-graph-database-sql-server-2017/中的说明,通过从节点表中检索$node_id来创建新的边缘表并填充它们

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57588504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档