-1

我无法理解 SQL Server 的这种误解。

如您所见,我正在尝试插入 Ordamount 列,但 SQL Server 在其错误消息中向我显示它无法将 null 插入列 UserID?

Declare @variable1 int =( select sum(Orr.quantity *OI.Iteprice)
                          from Orderrouter Orr
                          inner join OrdItem OI on Orr.OrdItems =OI.ItemId
                          where OrdId = 1)

 insert into Ord (Ordamount)
 values (@variable1);

错误:

消息 515,级别 16,状态 2,第 6 行
无法将值 NULL 插入到列 'UserID',表 'Example.dbo.Ord';列不允许空值。插入失败。

该语句已终止。

4

3 回答 3

1

对于 Ord 表中默认不允许为 null 的列,您必须为它们提供值,不能跳过它们。如果 UserID 不是 Nullable,则必须为它提供值,除非它是标识列

于 2012-10-12T08:21:19.910 回答
0

我认为问题在于您仅在插入不是表中的主键时指定数量,这可能也是显示表外观的一个想法。id 列上的自动增量可能会解决问题

于 2012-10-12T08:18:00.990 回答
0

请使用更具描述性的标题。

除此之外,似乎 Ord.UserID 字段未初始化。也许它不是自动增量。

试试这个,指定 UserId 值:

INSERT into Ord values(<UserId value here>, @Varaible1)
于 2012-10-12T08:19:29.727 回答