表[dbo].[payment_info]
上的列名必须从 NULL 更改为 NOT NULL 。如果表包含数据,则 ALTER 脚本可能无效。
要避免此问题,必须为所有行添加此列的值,或将其标记为允许NULL值,或者将智能默认值生成为部署选项。
CREATE TABLE [dbo].[payment_info]
(
[name] VARCHAR (50) NOT NULL,
[card_no] VARCHAR (50) NULL,
[card_type] VARCHAR (50) NOT NULL,
[tel_no] VARCHAR (50) NULL,
[mob_no] VARCHAR (50) NULL,
[address] VARCHAR (MAX) NULL
);
我无法将NULL
更改为NOT NULL
;当我更新它时显示上述警告。
我正在使用visual studio 2013 asp.net和c#。
答案 0 :(得分:2)
如果表已经存在并且已满足数据,则必须更新要在非某些值上更改的列中的所有NULL。然后ALTER命令应该没有警告和/或错误。
答案 1 :(得分:0)
我不确定我是否正确理解了您的问题,但是警告说明了一切 - 如果列中已经存在空值,则无法将列切换为不可为空。
您必须更新并设置一些值以清空条目或设置DEFAULT值
修改强>:
你应该先试试:
select *
from [dbo].[payment_info]
where name is null
并检查是否有任何问题
答案 2 :(得分:0)
在服务器资源管理器中的表上单击鼠标右键,然后单击“新查询”。类型:
ALTER TABLE
table
ALTER COLUMN
column
int NOT NULL;