Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 删除并在同一过程中插入_Sql_Sql Server_Sql Server 2000 - Fatal编程技术网

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

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

如果有任何问题,请询问。提前谢谢。

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


您的insert语句也很好。如果它没有抛出一个错误,那么其他事情正在发生。您确定正在传递参数吗?您确定正在查找正确的服务器/db/表并使用正确的查询进行检查吗?您的id字段标识属性是否为真?如果为真或是,则无需在insert语句中提供id。仅插入可能不起作用。将代码复制到新的查询窗口,将参数声明为变量,并将其设置为一些示例值。确保删除“as”和“createprocedure…”内容。然后运行查询。您应该会看到错误消息,其中显示了所有错误的行。此外,您正在使用哪些参数调用sp?桌子上有什么限制吗?桌子一开始是空的吗?你得到@ID的值了吗?