SQL SSMS:更改了 'allow nulls' 设计,现在无法切换回来(`无法将 NULL 值插入列中`)
SQL SSMS: changed 'allow nulls' design, now can't switch back (`cannot insert the value NULL into column`)
我在 SSMP
.
的开发 SQL
数据库中工作
我们有一个结点 table、jnc_roles_users
,它从两个查找 table 中提取值:lu_roles
和 lu_users
。
最初,联结 table 中除一列外的所有列都选中了 Allow Nulls
复选框。然后我进入设计编辑器并选中所有框 - 收到警告这将影响两个查找 tables,并成功保存更改。
现在,我想切换回最初的 table 设计,即除了一列外什么都不允许空值。但是 SSMS 不再允许我取消选中其中一个字段的 Allow Nulls
框。具有讽刺意味的是,取消选中我们的 'ID' 主键没有问题。就是我们的'pseudo'主键'roleUserID'改不回来了。当我尝试取消选中 'Allow Nulls' 并保存时,我收到警报:
'jnc_roles_users' table
- 无法修改 table.<br>
无法将值 NULL 插入列 'roleUserID'、table 'jnc_roles_users';列不允许空值。插入失败。
声明已终止。
这似乎有悖常理,因为该列目前停留在 'Allow Nulls',但此弹出窗口告诉我它不能接受空值。
lu_roles 和 lu_users 已成功保存,但 jnc_roles_users 未保存,这是唯一包含 'roleUserID'.
的 table
roleUserID
列在技术上不是主键 - 但我们正在考虑 'like' 一个,因为它确实采用我们设置的唯一值。出于某些原因,我们将此列视为一种主键 - 与不同位置的数据库备份以及常规 ID pk 如何在不同环境中错误复制有关,因此我们需要第二个伪 pk roleUserID
.
有什么想法吗?
您可以尝试使用 ALTER TABLE -
ALTER TABLE jnc_role_users
ALTER COLUMN roleUserID NVARCHAR(50) NOT NULL
将 NVARCHAR(50) 更改为 roleUserID 列使用的数据类型
很可能是在您更改设计器中的 Allow NULL 和您将其改回之前 table 中添加了一些具有 NULL 值的新数据。
我在 SSMP
.
SQL
数据库中工作
我们有一个结点 table、jnc_roles_users
,它从两个查找 table 中提取值:lu_roles
和 lu_users
。
最初,联结 table 中除一列外的所有列都选中了 Allow Nulls
复选框。然后我进入设计编辑器并选中所有框 - 收到警告这将影响两个查找 tables,并成功保存更改。
现在,我想切换回最初的 table 设计,即除了一列外什么都不允许空值。但是 SSMS 不再允许我取消选中其中一个字段的 Allow Nulls
框。具有讽刺意味的是,取消选中我们的 'ID' 主键没有问题。就是我们的'pseudo'主键'roleUserID'改不回来了。当我尝试取消选中 'Allow Nulls' 并保存时,我收到警报:
'jnc_roles_users' table
- 无法修改 table.<br>
无法将值 NULL 插入列 'roleUserID'、table 'jnc_roles_users';列不允许空值。插入失败。
声明已终止。
这似乎有悖常理,因为该列目前停留在 'Allow Nulls',但此弹出窗口告诉我它不能接受空值。
lu_roles 和 lu_users 已成功保存,但 jnc_roles_users 未保存,这是唯一包含 'roleUserID'.
的 tableroleUserID
列在技术上不是主键 - 但我们正在考虑 'like' 一个,因为它确实采用我们设置的唯一值。出于某些原因,我们将此列视为一种主键 - 与不同位置的数据库备份以及常规 ID pk 如何在不同环境中错误复制有关,因此我们需要第二个伪 pk roleUserID
.
有什么想法吗?
您可以尝试使用 ALTER TABLE -
ALTER TABLE jnc_role_users
ALTER COLUMN roleUserID NVARCHAR(50) NOT NULL
将 NVARCHAR(50) 更改为 roleUserID 列使用的数据类型
很可能是在您更改设计器中的 Allow NULL 和您将其改回之前 table 中添加了一些具有 NULL 值的新数据。