У меня есть эта таблица и функция Хранимых процедур:
Таблица:
CREATE TABLE _DMigNumbers(
Number numeric(20,0) NOT NULL PRIMARY KEY
);
INSERT INTO _DMigNumbers VALUES(0)
Функция хранимых процедур:
CREATE FUNCTION read_and_increment()
RETURNS NUMERIC(20,0)
BEGIN
DECLARE @number_just_read NUMERIC(20,0);
SELECT number INTO @number_just_read
FROM _DMigNumbers;
UPDATE _DMigNumbers
SET number = number + 1;
RETURN @number_just_read;
End
и я создаю эту таблицу чисел
CREATE TABLE _Numbers (
Number int NOT NULL PRIMARY KEY
);
INSERT INTO _Numbers VALUES(1)
INSERT INTO _Numbers VALUES(2)
INSERT INTO _Numbers VALUES(3)
INSERT INTO _Numbers VALUES(4)
ТЕПЕРЬ:
когда я делаю это:
select
f.Number
,read_and_increment()
from _Numbers f
Я получаю:
Number-----Value
1 0
2 0
3 0
4 0
Я хочу другое значение, например (0,1,2,3) - что мне нужно сделать, чтобы достичь этого?
Я понимаю, что получаю одинаковые значения из-за единственного выбора, но не уверен, что мне нужно сделать, чтобы получить то, что мне нужно в данный момент ......
Я не могу использовать IDENTITY или автоинкремент, см. мой предыдущий вопрос для более подробной информации, если вы заинтересованы ...
Спасибо
Voodoo