SQL Server: как получить NEXTVAL последовательности из VIEW? - PullRequest
0 голосов
/ 07 декабря 2018

В SQL Server я столкнулся с проблемой получения следующего значения последовательности из представления.Я знаю решение для этого случая для Oracle и PostgreSQL:

  • create sequence;
  • create функция / процедура, которая вызывает последовательность;
  • create view, котораявызовите функцию / процедуру;

Но в SQL Server этот подход не работает из-за системных ограничений.

1 Ответ

0 голосов
/ 07 декабря 2018

Проверьте это.Вы можете использовать ROW_NUMBER()

--DROP TABLE TestTable
--GO
CREATE TABLE TestTable
(
    id  INT identity(1,1)
    ,[Name] VARCHAR(100)
)
GO
INSERT INTO TestTable
VALUES
('A'),('B'),('C'),('D'),('E'),('F')
GO

--DROP VIEW TestView
--GO
CREATE  VIEW TestView
AS
SELECT   Id
        ,[Name]
        ,ROW_NUMBER() OVER (ORDER BY ID) A
FROM TestTable
GO

SELECT * FROM TestView
...