为什么我无法在带有VS 2019社区的SQL Server 2019中创建边缘约束

时间:2019-09-01 16:39:05

标签: sql-server visual-studio-2019 sql-server-2019

我无法创建边缘约束。这里有语法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部署的版本冲突……或者它是否还不是现成的。会四处摸索,看看我能发现什么。

0 个答案:

没有答案
相关问题