创建具有 uniqueidentifier 列的视图

Gib*_*boK 1 sql-server sql-server-2008

我需要从数据库中的表(在我的例子中为 dbo.EventsCollage)中获取数据并为其创建一个视图。

视图应该包含所基于的表的所有记录,另外我应该添加一个名为 Id of 的列datatype uniqueidentifier

应为视图中显示的每条记录自动创建唯一标识符值(随机生成)

这是我如何创建视图

CREATE VIEW testView
AS
SELECT
x.Name
FROM dbo.EventsCollage as x;
Run Code Online (Sandbox Code Playgroud)

您能给我指出一个代码示例吗?

Kaf*_*Kaf 5

使用newId()。(注意:每次选择时,这都会为您的每一行提供一个新的 ID

CREATE VIEW testView
AS
SELECT
newId() Id, x.Name
FROM dbo.EventsCollage as x;
Run Code Online (Sandbox Code Playgroud)

演示-1

或者,如果您需要每行每次都具有相同的唯一标识符,请尝试(注意:这最多只能处理 1 亿条记录

CREATE VIEW testView
AS

SELECT convert(uniqueidentifier,
       stuff('62799568-6EF2-4C95-84E7-4953A6959C99',1,len(rn),convert(varchar,rn))) id,
       T.Name
FROM ( 
  select x.Name,  ROW_NUMBER() over (order by x.Name) rn
FROM dbo.EventsCollage as x ) T;
Run Code Online (Sandbox Code Playgroud)

演示-2