我在SQL Server中遇到一个问题,即从视图中获取序列的nextval。 我知道针对Oracle和PostgreSQL的这种情况的解决方案:
但是在SQL Server中,由于系统限制,这种方法不起作用。
答案 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