尽管提供非空值,但S​​QL Server插入Null错误

时间:2016-03-04 17:17:45

标签: sql-server

我正在尝试插入但是它给出了一个错误,指出信用不能为空但我不提供null。 Attached Screenshot

代码:插入[dbo]。[课程]值(12,' Java',1,1,1);

错误:消息515,级别16,状态2,过程trgAfterInsert,第31行 无法将值NULL插入列' Credits',table' DemoCollege.dbo.Course&#39 ;;列不允许空值。 INSERT失败。 声明已经终止。

触发:

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

2 个答案:

答案 0 :(得分:2)

桌面上有一个插入触发器&那是产生错误的地方。 必须有一些逻辑,即以某种方式将提供的信用值转换为空值。

答案 1 :(得分:1)

只需提供要插入值的列。

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

很可能你在中间错过了一个col