2011-04-25 66 views
1

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

是否有任何錯誤消息? – RollingBoy 2011-04-25 06:12:50

+0

沒有錯誤消息。只是插入可能無法正常工作。 – shamim 2011-04-25 06:16:11

+0

將代碼複製到新的查詢窗口中,將參數聲明爲變量並將它們設置爲等於某些樣本值。確保你刪除了「as」和「create procedure ....」的東西。然後運行查詢。您應該看到顯示任何錯誤行的錯誤消息。 – MAW74656 2011-04-25 15:53:15

回答

0

你的語法很好。這不應該產生和錯誤。

您的插入語句也很好。如果不是拋出錯誤,那麼其他事情正在發生。你確定你傳遞參數嗎?你確定你正在查找正確的服務器/數據庫/表,並使用正確的查詢來檢查?你是積極它不會引發錯誤?

2

檢查您的ID字段標識屬性是真還是假,如果是真的還是有的則沒有必要給在INSERT語句ID