当我尝试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;
这是我得到错误的方式:
- 跑
INSERT INTO testing (hid , content) VALUES (hierarchyid::GetRoot () , 'a') ;
- 跑
EXEC testAdd '/' , 'a';
16次。
我得到的错误如下:
此外,我试图从这个答案运行第二个代码片段,它立即坏了。
可能出了什么问题?
更新:我已经卸载了 VS 2015 和 sql server 2014 的 CLR 数据类型,并用旧版本替换它们无济于事。