我无法创建边缘约束。这里有语法here的描述。
我有SQL Server 2019 Release Candidate1。我不完全了解这与CTP的关系,但是我认为Eval Center上的内容是不错的选择。不?
如果将示例粘贴到SSMS 18.2中,则在边缘约束的定义处会出现“语法错误”。我可以看到诸如sys.edge_constraints和sys.edge_constraint_clauses之类的工件...但是它不能让我定义约束。我想念什么?
我正在尝试的示例(从第一个链接开始)是:
CREATE TABLE Customer
(
ID INTEGER PRIMARY KEY
, CustomerName VARCHAR(100)
)
AS NODE;
GO
CREATE TABLE Supplier
(
ID INTEGER PRIMARY KEY
, SupplierName VARCHAR(100)
)
AS NODE;
GO
CREATE TABLE Product
(
ID INTEGER PRIMARY KEY
, ProductName VARCHAR(100)
)
AS NODE;
-- CREATE edge table with edge constraints.
CREATE TABLE bought
(
PurchaseCount INT
, CONSTRAINT EC_BOUGHT CONNECTION (Customer TO Product, Supplier TO Product)
)
AS EDGE;
-- Query sys.edge_constraints and sys.edge_constraint_clauses to view
-- edge constraint properties.
SELECT
EC.name AS edge_constraint_name
, OBJECT_NAME(EC.parent_object_id) AS edge_table_name
, OBJECT_NAME(ECC.from_object_id) AS from_node_table_name
, OBJECT_NAME(ECC.to_object_id) AS to_node_table_name
, is_disabled
, is_not_trusted
FROM sys.edge_constraints EC
INNER JOIN sys.edge_constraint_clauses ECC
ON EC.object_id = ECC.object_id
WHERE EC.parent_object_id = object_id('bought');
类似地,我有一个针对 SQL Server 2019或Azure SQL Database托管实例的SQL Server数据库项目...并且表工件在表定义的相同位置产生相同的错误。< / p>
更新:
如丹·古兹曼(Dan Guzman)所建议-模具必须滞后。我在VS项目中进行实验并证明了这一点,就是在我的Post-Deploy脚本中添加了以下内容:
execute sp_executesql @statement = N'alter table graph.VotesFor add
constraint [People.VoteFor.Candidates]
connection
(
graph.People to graph.Candidates
)
'
这施加了没有工具支持的约束-只有db引擎...这完全使我工作愉快。它使我摆脱了我的当务之急。我知道SSDT不再与VS分开,而是在VS安装中附带了“数据存储和处理”工作负载。之前我应该提到,我一直都在选择工作负载。
因此,这使我想知道以前的独立SSDT安装是否与VS部署的版本冲突……或者它是否还不是现成的。会四处摸索,看看我能发现什么。