具有ID列的SQL视图

5
我正在使用一个我创建的SQL视图,但我想添加一个ID列(自增种子),因为当前没有。如何在SQL视图中实现这一点?
4个回答

9
如果底层表中没有标识列,您可以使用伪列生成一个标识列。
在SQL Server中:SELECT ROW_NUMBER() OVER (ORDER BY FiscalYear, FiscalMonth), FiscalYear, FiscalMonth, ... FROM ... 参见http://msdn.microsoft.com/en-us/library/ms186734.aspx 在Oracle中:SELECT ROWNUM, FiscalYear, FiscalMonth, ... FROM ...。 在Oracle中,ROWNUM使用结果集中的顺序。

3
您可以使用以下方法自动将GUID添加到您的VIEW中:
CREATE VIEW VIEW_Name
AS
   NEWID() AS ID,
   your other columns here
FROM 
   dbo.YourTable

2
如果您并不关心实际成为身份种子,您可以使用ROW_NUMBER()生成一个表面上的ID。 点击此处了解更多信息。

1

如果底层表中不存在标识列,则必须添加标识列。然后,您可以更新视图以包括此列。

行号绝不起到标识(即PK)的作用。您无法保证这个数字在未来会保持不变。如果实际上您只想要一个行号(可能会在将来更改),那么任何建议的解决方案都可以,但是如果您想要一个不可变的标识,以便在其他地方引用,您必须将其添加到底层表中。


这不是问题的答案,也没有帮助。 - Maxx
这是对问题的回答,因为它指定了“identity seed”,这只能在表本身上完成,或者如果使用Oracle或类似产品,则可以通过序列完成。 - D'Arcy Rittich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接