Я работаю в базе данных dev SQL
в SSMP
.
У нас есть соединительная таблица jnc_roles_users
, которая извлекает значения из двух справочных таблиц: lu_roles
и lu_users
.
Изначально во всех столбцах таблицы соединений, кроме одного, был установлен флажок Allow Nulls
.Затем я вошел в редактор дизайна и установил все флажки - получил предупреждение, что это повлияет на две таблицы поиска, и успешно сохранил изменения.
Теперь я хочу вернуться к исходному дизайну таблицы, в котором ничего не допускается, кроме одного столбца.Но SSMS больше не позволяет мне снимать флажок Allow Nulls
для одного из полей.По иронии судьбы, нет проблем с снятием отметки с нашего первичного ключа «ID».Это наш 'псевдо' первичный ключ 'roleUserID', который я не могу изменить обратно.Когда я пытаюсь снять флажок «Разрешить пустые значения» и сохранить его, я получаю предупреждение:
'jnc_roles_users' table
- Unable to modify table.<br>
Cannot insert the value NULL into column 'roleUserID', table 'jnc_roles_users'; column does not allow nulls. INSERT fails.
The statement has been terminated.
Это кажется нелогичным, поскольку столбец в настоящее время застрял на «Разрешить нулевые значения», но все жеэто всплывающее окно говорит мне, что оно не может принимать нули.
lu_roles и lu_users были успешно сохранены, но не jnc_roles_users, которая является единственной таблицей, которая содержит 'roleUserID'.
столбец roleUserID
технически это не первичный ключ - но мы рассматриваем его как «подобный», поскольку он принимает уникальные значения, которые мы установили.По определенным причинам мы рассматриваем этот столбец как своего рода первичный ключ - что-то, что нужно делать с резервным копированием базы данных в разных местах, и как обычный идентификатор pk может неправильно дублироваться в разных средах, поэтому нам понадобился второй псевдо-pk * 1024.*.
Есть идеи?