在我的SQL存储过程中,我需要删除并插入相同的查询。我的语法如下。但我的语法无法存储数据。为什么会失败?我该如何解决这个问题?我的语法是
CREATE PROCEDURE spInsertCollectionInspectionHours
@StartDate DATETIME ,
@EndDate DATETIME ,
@ID BIGINT ,
@VesselName VARCHAR(80) ,
@VoyageNo VARCHAR(15) ,
@PortCode VARCHAR(20) ,
@Terminal VARCHAR(70) ,
@InspectionDate DATETIME ,
@InvoiceHours INT ,
@ManifestType INT ,
@Remarks NVARCHAR(200)
AS
BEGIN
BEGIN
DELETE FROM dbo.InspectionHours
WHERE InspectionDate BETWEEN @StartDate AND @EndDate
END
BEGIN
SELECT @ID = ISNULL(MAX(ID), 0) + 1
FROM [InspectionHours]
INSERT INTO [InspectionHours]
( [ID] ,
[VesselName] ,
[VoyageNo] ,
[PortCode] ,
[Terminal] ,
[InspectionDate] ,
[InvoiceHours] ,
[ManifestType] ,
[Remarks]
)
VALUES ( @ID ,
@VesselName ,
@VoyageNo ,
@PortCode ,
@Terminal ,
@InspectionDate ,
@InvoiceHours ,
@ManifestType ,
@Remarks
)
END
END
如有任何疑问请咨询。提前谢谢。
答案 0 :(得分:2)
检查你的id字段标识属性是否为真如果是真的或是,则不需要在插入语句中给出id
答案 1 :(得分:0)
你的语法很好。这不应该产生和错误。
您的插入声明也没问题。如果没有抛出错误,则会发生其他事情。你确定要传递参数吗?您确定要查找正确的server / db / table并使用正确的查询进行检查吗?你是肯定它没有抛出错误吗?