Sql 删除并在同一过程中插入
在我的SQL存储过程中,我需要删除和插入同一个查询。我的语法如下。但我的语法无法存储数据。为什么会失败?我如何解决这个问题?我的语法是Sql 删除并在同一过程中插入,sql,sql-server,sql-server-2000,Sql,Sql Server,Sql Server 2000,在我的SQL存储过程中,我需要删除和插入同一个查询。我的语法如下。但我的语法无法存储数据。为什么会失败?我如何解决这个问题?我的语法是 CREATE PROCEDURE spInsertCollectionInspectionHours @StartDate DATETIME , @EndDate DATETIME , @ID BIGINT , @VesselName VARCHAR(80) , @VoyageNo VARCHAR(15
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
如果有任何问题,请询问。提前谢谢。您的语法很好。这不应该产生错误
您的insert语句也很好。如果它没有抛出一个错误,那么其他事情正在发生。您确定正在传递参数吗?您确定正在查找正确的服务器/db/表并使用正确的查询进行检查吗?您的id字段标识属性是否为真?如果为真或是,则无需在insert语句中提供id。仅插入可能不起作用。将代码复制到新的查询窗口,将参数声明为变量,并将其设置为一些示例值。确保删除“as”和“createprocedure…”内容。然后运行查询。您应该会看到错误消息,其中显示了所有错误的行。此外,您正在使用哪些参数调用sp?桌子上有什么限制吗?桌子一开始是空的吗?你得到@ID的值了吗?