私のテーブルがあります:
ID code(varchar)
1 006
2 008
3 005
4 010
5 002
ストアド プロシージャを作成しました。
CREATE PROC pp
@code VARCHAR(10),
@new_code VARCHAR(10) OUTPUT
AS
BEGIN
SELECT TOP 1 @new_code = RIGHT(1000+code+1,3)
FROM tb AS a
WHERE [Code] >= @code
AND NOT EXISTS (SELECT 1 FROM tb WHERE [Code]=RIGHT(1000+a.[Code]+1,3))
ORDER BY RIGHT(1000+code+1,3)
END
結果が 011 の下でこのストアド プロシージャを呼び出すと、それは正しいです。
DECLARE @code VARCHAR(3)
EXEC pp '009', @code OUTPUT
SELECT @code
以下のストアドプロシージャを呼び出すと、結果は011のままなので、結果は間違っています。「004」である必要があります。
DECLARE @code VARCHAR(3)
EXEC pp '003', @code OUTPUT
SELECT @code
これを修正する方法は?TKS!