2
ストアドプロシージャは:
@param0 varchar(12),
@SeqNo INT OUTPUT
AS
BEGIN
IF (@param0 IS NOT NULL)
BEGIN
set nocount on
DECLARE @reqseqno INT
SELECT @reqseqno = CounterValue FROM Counters WHERE CounterName = @param0
UPDATE Counters SET CounterValue = @reqseqno + 1 WHERE CounterName = @param0
SELECT @reqseqno AS 'SeqNo'
END
END
GO
機能dbo.rf_f_CIntToChar
は先行ゼロを持つ整数のvarchar
バージョンを返す(リターンする文字数は、変換する整数)の2つのパラメータを取ります。
関数:これらは別々に使用すべきである場合のように
(@intVal int, @intLen int)
RETURNS varchar(10)
WITH EXEC AS CALLER
AS
BEGIN
IF @intlen > 20 SET @intlen = 20
IF @intlen < LEN(@intVal) RETURN RIGHT(CONVERT(varchar(10), @intVal), @intlen)
RETURN REPLICATE('0', @intLen - LEN(@intVal)) + CONVERT(varchar(10), @intVal)
END
GO
ストアドプロシージャおよび関数の両方が動作します。
なぜ上記のクエリはCharNumber
ではなくSeqNo
を返しますか?
に値を代入することはありません、あなたはそのSPと関数のソースの簡易版を追加できますか? –
問題を再現するspと関数のサンプルコードを掲載してください。 –