当我尝试在我的应用程序中生成hierarchyid
时遇到问题。具体来说,每个节点似乎没有超过16个孩子。这是我试图用于存储过程的代码(这是一个只有一个hid字段和一个内容字段的测试表:
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次。我得到的错误如下:
此外,我尝试从this answer运行第二个代码段,并立即崩溃。
可能出现什么问题?
更新:我已经卸载了VS 2015,以及sql server 2014的CLR数据类型,并用旧版本替换它们无济于事。