我的问题是我在 SQL View (MS SQL 2005)上有更新触发器,我将其映射到 C# 中的 LINQ to SQL 实体...

我的 SQL 看起来正确,但它提示试图将空值插入辅助表 PK 字段。

我相信我的问题与将主键和身份作为主表中的单独字段有关。所以我的问题是....当使用@@identity 时,它是查看插入行的主键,还是查看指定了“IDENTITY”的字段???

最佳答案

@@IDENTITY 只返回最后一次插入的标识值。它不知道该值是否在主键列中使用,或者对于给定的列是否将是唯一的。而不是使用 @@IDENTITY ,您应该使用 SCOPE_IDENTITY() ,特别是如果您有触发器。 @@IDENTITY 只关心具有 IDENTITY 属性的列(表上只能有一个)。表是否有主键和PK是否为标识列没有区别。

有关更多信息,请参阅 SCOPE_IDENTITY

关于c# - @@identity 是否返回主键或身份字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2819635/

10-13 06:49