2016-03-04 38 views
1

我試圖做一個插入,但它給出了一個錯誤,表明信用不能爲空,但我不提供空值。 Attached Screenshot儘管提供非空值SQL Server插入空錯誤

代碼:插入[dbo]。[Course] values(12,'Java',1,1,1);

錯誤:消息515,級別16,狀態2,過程trgAfterInsert,行31 無法將值NULL插入列'Credits',表'DemoCollege.dbo.Course';列不允許有空值。 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 
+0

您對錶 –

+0

一個失敗的觸發時刻提供在INSERT語句列列表中的山坳。 –

+0

請注意您的觸發器不支持多行插入。 –

回答

1

有在桌子上&這就是正在從生成錯誤的INSERT觸發器。 必須有一些邏輯,即將提供的信用值以某種方式轉換爲空值。

1

只需提供要插入值的列。

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

最大的可能是你錯過了中間

+1

好的建議提供列列表,但這不是問題。 –

相關問題