0

SQL Server 2005で次のストアドプロシージャを記述しましたが、エラーメッセージが表示されます。

メッセージ102、レベル15、状態1、プロシージャsp_InsertCustTrans、12行
目'@TrID'の近くの構文が正しくありません。

私のストアドプロシージャは次のとおりです。

ALTER PROCEDURE [dbo].[sp_InsertCustTrans] 
-- Add the parameters for the stored procedure here
@CuID int, @TrType nvarchar(10), @TrAmt int
AS
BEGIN
SET NOCOUNT ON;
    declare @TrID int;
    Select @TrID = MAX(TransactionID) from CustTrans;
    if Isnull(@TrID)
        @TrID = @TrID + 1
    else
        @TrID = 1

-- Insert statements for procedure here
if (@TrType = 'Deposit')
    begin
        INSERT INTO CustTrans (TransactionID, TransactionDate, CustID, TransactonType, CreditAmount)
            Values(@TrID, GetDate(), @CuID, @TrType, @TrAmt);
    end
else
    begin
        INSERT INTO CustTrans (TransactionID, TransactionDate, CustID, TransactonType, DebitAmount)
            Values(@TrID, GetDate(), @CuID, @TrType, @TrAmt);
    end
END
GO
4

1 に答える 1

4

すべての割り当て操作の前にキーワードを付ける必要がありますset

Set @TrID = @TrID + 1

また、Ivanが指摘しているように、IsNullを誤って使用しています。適切な使用法は次のとおりです。

If @TrID Is Null
于 2012-07-02T16:54:35.720 に答える