Sql server SQL Server插入Null错误,尽管提供了非Null值

Sql server SQL Server插入Null错误,尽管提供了非Null值,sql-server,Sql Server,我试图做一个插入,但它给出了一个错误,指出学分不能为null,但我没有提供null 代码:插入[dbo].[Course]值(12,'Java',1,1,1) 错误:Msg 515,16级,状态2,程序trgAfterInsert,第31行 无法在“DemoCollege.dbo.Course”表的“Credits”列中插入空值;列不允许空值。插入失败。 声明已终止 触发: Create trigger trgAfterInsert2 ON [dbo].[Course] After Insert

我试图做一个插入,但它给出了一个错误,指出学分不能为null,但我没有提供null

代码:插入[dbo].[Course]值(12,'Java',1,1,1)

错误:Msg 515,16级,状态2,程序trgAfterInsert,第31行 无法在“DemoCollege.dbo.Course”表的“Credits”列中插入空值;列不允许空值。插入失败。 声明已终止

触发:

Create trigger trgAfterInsert2 ON [dbo].[Course]
After Insert
AS 
Declare @cid int;
Declare @cname nvarchar(50);



Select @cid = i.CourseID from inserted i;
Select @cname = i.Title from inserted i;


Insert into dbo.CourseTemp values (@cid, @cname);

Print 'After insert trigger fired';
GO

表上有一个insert触发器&这就是产生错误的原因。
必须有某种逻辑将提供的信用值以某种方式转换为空值。

只需提供要插入值的列即可

 Insert into [dbo].[Course](ColName1, ColName2, ColName3, ColName4, etc..) values (12,'Java',1,1,1);

最有可能的情况是,中间缺少一个列

您的表上有一个失败的触发器总是在insert语句中提供列列表。请注意,您的触发器不支持多行插入。触发器无法生成您得到的错误。请张贴实际的一个。很好的建议,提供列列表,但这不是这里的问题。