SQL Server:如何从VIEW获取序列的NEXTVAL?

时间:2018-12-07 13:58:39

标签: sql sql-server sql-server-2008 view sequence

我在SQL Server中遇到一个问题,即从视图中获取序列的nextval。 我知道针对Oracle和PostgreSQL的这种情况的解决方案:

  • 创建序列;
  • 创建调用序列的函数/过程;
  • 创建视图,该视图调用函数/过程;

但是在SQL Server中,由于系统限制,这种方法不起作用。

1 个答案:

答案 0 :(得分:0)

检查一下。您可以使用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