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
如果'@ Count' *不* 0的'CATCH'塊? - 你必須在你打開的交易中做*某事*。你既不承諾也不回滾。 –
**這是什麼RDBMS **?像存儲過程的東西** **高度**供應商特定..... –