SQL Server:hierarchyid和nvarchar

时间:2017-08-10 12:07:50

标签: sql sql-server azure-sql-server

我有一个SQL Server数据库,其中包含一个Users表,其中包含以下列:

  • UserId:nvarchar(128)
  • 电子邮件:nvarchar(256)
  • ...

我想在我的系统中添加用户层次结构。这意味着,一个用户将成为“管理员”。其他人将是管理员或其他用户的子女。

所以,我想添加一个新专栏:

  • ParentUser:hierarchyid

Users表。管理员用户将是层次结构的顶级值。其他将放在它下面。例如:

\b2566df8-9129-405b-a0e6-a56da3b49c5a\79336162-022e-495c-8655-64de1abe556c
\admin-id\normal-user-id

我的问题是hierarchyid列不接受nvarchar(128)(我的用户ID)作为有效值。因此,我的管理员用户无法在[ParentColumn]中获得值“\ b2566df8-9129-405b-a0e6-a56da3b49c5a”。

使用SQL Server Management Studio时出现的错误:

The error

尝试过这些价值观:

  • b2566df8-9129-405b-a0e6-a56da3b49c5a
  • / b2566df8-9129-405b-a0e6-a56da3b49c5a

一种可能的解决方案是为每个用户创建另一个唯一ID。但是,现在创建一个将被hierarchyid列接受的用户标识。但是,我想避免使用此解决方案并使用原始用户ID。

如何解决这个问题?

0 个答案:

没有答案