我有这张桌子:
CREATE TABLE [dbo].[UserProfile]
(
[UserId] INT IDENTITY (1, 1) NOT NULL,
[UserName] NVARCHAR (MAX) NULL,
[Gender] CHAR (10) NULL,
[Vegetarian] BIT NULL,
[Diet] NVARCHAR (50) NULL,
[Email] NVARCHAR(50) NULL,
[Birthday] SMALLDATETIME NULL,
PRIMARY KEY CLUSTERED ([UserId] ASC)
);
如果将列设置为NOT NULL
,或者Allow Null
在设计模式下取消选中该复选框,则无法更新数据库。VS返回此错误:
执行批处理时发生错误。
没有其他信息。有人请向我解释一下。我想UserName
,Gender
和Email
作为NOT NULL
。
更新:我发现问题出在哪里。我的程序的样本用户没有任何数据,这就是为什么当我将新列设置为时NOT NULL
,会发生错误。
运行此查询以找到错误的行:
SELECT * FROM [dbo].[UserProfile]
WHERE UserName is NULL OR Gender is NULL or Email is NULL
在更改每一列之前,您可能必须运行这样的更新:
UPDATE [dbo].[UserProfile]
SET Email = N' '
WHERE Email is NULL
不要尝试合并列的更新,否则将有覆盖正确的列值的风险。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句