【发布时间】:2018-06-21 04:00:22
【问题描述】:
这是我的桌子,如图所示
这是我的插入存储过程
但是当我尝试使用我的项目项目执行它时显示如下错误。
错误:
无法将值 NULL 插入到列“SID”、表“AttDemo.dbo.StdMst”中;列不允许空值。插入失败。
声明已终止。
【问题讨论】:
-
在...上设置列 SID 身份自动编号
标签: asp.net sql-server
这是我的桌子,如图所示
这是我的插入存储过程
但是当我尝试使用我的项目项目执行它时显示如下错误。
错误:
无法将值 NULL 插入到列“SID”、表“AttDemo.dbo.StdMst”中;列不允许空值。插入失败。
声明已终止。
【问题讨论】:
标签: asp.net sql-server
解决此问题的最简单方法是将主键设置为自动递增 / 作为身份。
或者,你可以改变这个:
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[STDMST_INSERT]
@STDNAME AS NVARCHAR (50)
AS
BEGIN
INSERT INTO (StdMst (StdName, EDate) VALUES(@STDNAME, GETDATE())
END
GO
到这里:
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[STDMST_INSERT]
@STDNAME AS NVARCHAR (50)
AS
BEGIN
INSERT INTO (StdMst (SID, StdName, EDate) VALUES(IDENT_CURRENT('StdMst'), @STDNAME, GETDATE())
END
GO
您遇到的问题是您的主键不允许 NULL 值并且未设置为自动增量。
这里有一些有用的链接:
【讨论】:
您似乎认为您的 SID 列是 IDENTITY 列,但事实并非如此。
【讨论】: