删除并插入相同的过程

时间:2011-04-25 06:07:57

标签: sql sql-server sql-server-2000

在我的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

如有任何疑问请咨询。提前谢谢。

2 个答案:

答案 0 :(得分:2)

检查你的id字段标识属性是否为真如果是真的或是,则不需要在插入语句中给出id

答案 1 :(得分:0)

你的语法很好。这不应该产生和错误。

您的插入声明也没问题。如果没有抛出错误,则会发生其他事情。你确定要传递参数吗?您确定要查找正确的server / db / table并使用正确的查询进行检查吗?你是肯定它没有抛出错误吗?