sql - 将标识列添加到 SQL Server 2008 中的 View

标签 sql sql-server sql-server-2008 tsql view

这是我的观点:

Create View [MyView] as
(
Select col1, col2, col3 From Table1
UnionAll
Select col1, col2, col3 From Table2
)

我需要添加一个名为 Id 的新列,并且我需要该列是唯一的,因此我认为添加新列作为标识。我必须提到这个 View 返回了大量数据,所以我需要一种性能良好的方法,而且我使用两个带有 union all 的选择查询,我认为这可能有些复杂,所以你的建议是什么?

最佳答案

使用 SQL Server 2008 中的ROW_NUMBER() 函数。

Create View [MyView] as

SELECT ROW_NUMBER() OVER( ORDER BY col1 ) AS id, col1, col2, col3
FROM(
    Select col1, col2, col3 From Table1
    Union All
    Select col1, col2, col3 From Table2 ) AS MyResults
GO

关于sql - 将标识列添加到 SQL Server 2008 中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10382287/

相关文章:

MySQL 使用了不正确的索引。为什么?

sql - 使用 Access 2007 表单字段中的输入选择 SQL 查询

php - 查询表以根据通过 php 中的 url 传递的相册 ID 检索图像信息

sql - 如何在 SQL 查询中使用 COUNT 和 SELECT 显示 0 值

c# - 找不到可安装的 ISAM

sql - Postgres : COPY TO error

sql - T-SQL 将来自不同行中最大长度列的行分组(?)

sql - 如何修改我的 SQL 以选择与不同行中的日期匹配的值?

t-sql - where 子句中的动态列

sql-server - TSQL - 使用全文 CONTAINS 的连接