1

当我尝试hierarchyid在我的应用程序中生成时遇到问题。具体来说,每个节点我似乎不能有超过 16 个孩子。这是我试图用于我的存储过程的代码(这是一个只有一个隐藏字段和一个内容字段的测试表:

create PROC testAdd (@parentid hierarchyid, @content varchar(10)) 
AS
BEGIN
    DECLARE
       @parentNode hierarchyid , 
       @lc hierarchyid;
    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
    BEGIN TRANSACTION;
    SELECT @lc = MAX (hid)
      FROM testing
      WHERE hid.GetAncestor (1) = @parentid;

    INSERT INTO testing (hid, content) 
    VALUES ( @parentid.GetDescendant(@lc, NULL),
    @content) ;
    COMMIT;
END;

这是我得到错误的方式:

  1. INSERT INTO testing (hid , content) VALUES (hierarchyid::GetRoot () , 'a') ;
  2. EXEC testAdd '/' , 'a';16次。

我得到的错误如下: 在此处输入图像描述

此外,我试图从这个答案运行第二个代码片段,它立即坏了。

可能出了什么问题?

更新:我已经卸载了 VS 2015 和 sql server 2014 的 CLR 数据类型,并用旧版本替换它们无济于事。

4

0 回答 0