SQL 视图中的静态唯一 identifier/column

Static unique identifier/column in SQL view

我正在尝试将静态唯一值列添加到视图中,该列保留其位置并且在调用视图时不会更改。

想法是在视图中有一个唯一标识符,我知道我们可以使用连接表的主键之一作为唯一标识符,但在我的情况下,该主键有重复键列值,因为它与多个表连接。

我尝试了 Rand()NEWID()ABS(CHECKSUM(NEWID())) 他们确实达到了目的,但并不完全。 每当调用视图时,它们都有不同的唯一值,我需要一个唯一值来表示一行,并且在调用视图时不会更改。

期待有用的回复。

此致, 阿里·纳瓦兹

我不确定您所说的“在调用视图时保留其位置并且不会更改”是什么意思,因为基础数据可能会更改。

但是,如果您有一组唯一定义每一行的列,那么 row_number() 应该可以满足您的要求:

row_number() over (order by col1, col2, col3)

列唯一标识每一行很重要。通常,这些将是基础表的主键。