Create Proc CrearNuevoAnuncio
@Titulo varchar(250),
@Precio int,
@Descripcion varchar(250),
@IDCategoria int,
@IDImagen int,
@Login varchar(200)
AS
INSERT INTO Anuncio VALUES(
@Titulo,
@Precio,
@Descripcion,
@IDCategoria,
@IDImagen,
@Login
)
Run Code Online (Sandbox Code Playgroud)
该错误是因为表anuncio还有1个属性:"idAnuncio".它是主键,它是身份(自动增量).
所以,我怎么能处理这个缺失的东西是一个身份.我不想从我的前端传递该参数.
您需要在insert语句中指定明确的列列表:
INSERT INTO
Anuncio(Titulo, Precio, Descripcion, IDCategoria, IDImagen, Login)
VALUES
(@Titulo, @Precio, @Descripcion, @IDCategoria, @IDImagen, @Login)
Run Code Online (Sandbox Code Playgroud)
否则,SQL Server将尝试为此处失败的所有列插入值.它无法在IDENTITY列中插入值 - SQL Server会在插入新行时自动设置该列,并保证该列唯一.
ID字段是"INT IDENTITY"类型吗?在这种情况下,您可以像这样访问新插入的ID的值:
DECLARE @NewID INT
SET @NewID = SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)
并可能从存储过程中返回它:
RETURN @NewID
Run Code Online (Sandbox Code Playgroud)
渣
您需要指定哪个值到哪个字段.
INSERT INTO Anuncio (field1, field2, ...) VALUES (@Titulo, ...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1514 次 |
| 最近记录: |