0

我有一个跟随表:

工作技能

CreatedByID not null, 
CreatedDate not null, 
ModifiedByID not null, 
ModifiedDate not null

我需要通过过程和触发器插入记录。 CreatedByIDModifiedByID通过程序插入。

我需要为插入CreatedDate和创建触发器ModifiedDate

当我在 MSSQL 中执行插入方法时,出现此错误。

Msg 515, Level 16, State 2, Line 1
Cannot insert the value NULL into column 'CreatedDate', table 'One91.dbo.JobSkill'; column does not allow nulls. INSERT fails.
The statement has been terminated.

任何人都可以在这个问题上帮助我吗?

4

1 回答 1

0

问题在于一步 SQL 尝试填充所有 4 列,但您只提供 2 个值, forCreatedDateModifiedDate。因为所有列都有 NOT NULL,所以 SQL 不能留下缺少值的列。

有两种解决方案:

  1. 将列更改为 NULL CreatedDateModifiedDate 因此在程序中它们将为 NULL,但使用触发器您将填充它。

  2. CreatedDate并且ModifiedDate可以保留为 NOT NULL 列,但是您必须创建DEFAULT约束,这将确保使用一些默认值(或在过程中手动填充一些任意值)来填充列,然后使用触发器更新它们。

于 2013-09-06T10:10:46.833 回答