2013-04-16 37 views
0
ALTER PROCEDURE [dbo].[InsertAgent] 
    (
     @State nvarchar(50), 
     @StateCode int, 
     @City nvarchar(50), 
     @CityCode int, 
     @FirstName nvarchar(100), 
     @LastName nvarchar(100), 
     @ParentName nvarchar(100), 
     @Relationship nvarchar(100), 
     @RelationshipCode int, 
     @DOB date, 
     @Age int, 
     @Address nvarchar(250), 
     @District nvarchar(50), 
     @PIN int, 
     @PANCardNo nvarchar(12), 
     @Mobile1 nvarchar(14), 
     @Mobile2 nvarchar(14), 
     @OtherDetail nvarchar(250), 
     @AgentCode nvarchar(20), 
     @LevelRank int, 
     @Agency Bit, 
     @SeniorAgentID int, 
     @Count int OUTPUT 
    ) 
AS 
    BEGIN 
    /* SET NOCOUNT ON */ 
    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; 
    DECLARE @AGENT_CODE nvarchar(15) 
    BEGIN TRY 

    BEGIN TRANSACTION 
     DECLARE @NewAgentCount INT = (SELECT MAX(AgentCount) FROM dbo.tbl_Agent WITH (TABLOCKX))+1; 

     select @AGENT_CODE = @CityCode + 'A' + (SELECT RIGHT('000000'+ CONVERT(VARCHAR,AgentCount),7) AS AgtCode FROM dbo.tbl_Agent); 

      BEGIN 
        INSERT INTO tbl_Agent(State, StateCode, City, CityCode, FirstName,LastName,ParentName, Relationship, RelationshipCode, DOB,Age,Address ,District,PIN ,PANCardNo,Mobile1 ,Mobile2,OtherDetail,AgentCount, AgentCode,LevelRank,DateAdded ,Agency,SeniorAgentID) 
        VALUES(@State, @StateCode, @City, @CityCode, @FirstName,@LastName,@ParentName, @Relationship, @RelationshipCode, @DOB,@Age,@Address ,@District,@PIN ,@PANCardNo,@Mobile1 ,@Mobile2,@OtherDetail,@NewAgentCount, @AGENT_CODE,@LevelRank, GETDATE() ,@Agency,@SeniorAgentID) 
      END 
     SELECT @Count = SCOPE_IDENTITY(); 

    COMMIT TRANSACTION 
    END TRY 
    BEGIN CATCH 
     IF (@Count = 0) 
     BEGIN 
      ROLLBACK TRANSACTION 
     END 
    END CATCH 
    END 

我正在嘗試創建@NewAgentCount,它是最大的AgentCount +1和@AGENT_CODE,它是12字符格式。但是這給了我在主題中提到的錯誤。 Plzzz幫助!存儲過程給出錯誤:BEGIN和COMMIT語句數量不匹配。以前的計數= 0,當前計數= 1

+0

如果'@ Count' *不* 0的'CATCH'塊? - 你必須在你打開的交易中做*某事*。你既不承諾也不回滾。 –

+0

**這是什麼RDBMS **?像存儲過程的東西** **高度**供應商特定..... –

回答

相關問題