SQL 异常 - 列不允许空值.插入失败.不过,我的数据不为空



当我插入的对象没有任何空值时,什么可能导致此异常?我已经调试并查看了对象,没有空值,但它仍然抛出异常。我唯一能想到的是,该列的定义以前读过

identity(1,1) not null

我把它改成了

not null

有什么想法吗?

我的桌子

CREATE TABLE [dbo].[Products] (
    [ProductId]      INT             NOT NULL,
    [Enabled]          BIT             CONSTRAINT [DF_Stock_Enabled] DEFAULT ((1)) NOT NULL,
    [Sort]             INT             NOT NULL,
    [ProductPrice] DECIMAL (18, 2) NOT NULL,
    CONSTRAINT [PK_Stock] PRIMARY KEY CLUSTERED ([ProductId] ASC),
    CONSTRAINT [FK_Stock_Products] FOREIGN KEY ([ProductId]) REFERENCES [dbo].[Products]      ([ProductId])
);

是的,IDENTITY 意味着它将在插入时为该列生成递增的值。删除它意味着对该表的任何插入现在都将失败,因为它不再自动生成该序列号。

当你的 identity(1,1) 不为 null 时,这意味着你不必为该列提供值。SQL Server 递增自身的值(如果该表上关闭了IDENTITY_INSERT)。

当您将其更改为不 null 时,您必须为该列提供值。在 SQL 服务器事件探查器中签入生成的语句。

最新更新