SQL Server: иерархия и nvarchar

У меня есть база данных SQL Server, которая включает в себя Users таблица со следующими столбцами:

  • ИД пользователя: nvarchar(128)
  • электронная почта: nvarchar (256)
  • ...

Я хочу добавить иерархию пользователей в мою систему. Это означает, что один пользователь будет "администратором". Другие будут детьми администратора или других пользователей.

Итак, я подумал о добавлении нового столбца:

  • ParentUser:ierarchyid

к Users Таблица. Пользователь-администратор будет иметь значение верхнего уровня иерархии. Другое будет размещено под ним. Например:

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

Моя проблема в том, что столбец иерархии не принимает nvarchar(128) (мой идентификатор пользователя) в качестве допустимого значения. Таким образом, мой администратор не может получить значение "\b2566df8-9129-405b-a0e6-a56da3b49c5a" в своем [ParentColumn],

Ошибка, которую я получаю при использовании SQL Server Management Studio:

Ошибка

Пробовал эти значения:

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

Одним из возможных решений является создание другого уникального идентификатора для каждого пользователя. Но теперь создайте идентификатор пользователя, который будет принят столбцом иерархии. Но я хочу избежать этого решения и использовать оригинальный идентификатор пользователя.

Как это решить?

0 ответов

Другие вопросы по тегам