我有这张桌子:
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
时,会发生错误。
答案 0 :(得分:0)
运行此查询以找到错误的行:
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
不要尝试合并列的更新 - 您将面临覆盖正确列值的风险。