1

我需要从数据库中的表中获取数据,在我的情况下为 dbo.EventsCollage 并为其创建一个视图。

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

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

这是我如何创建视图

CREATE VIEW testView
AS
SELECT
x.Name
FROM dbo.EventsCollage as x;

你能指出我的代码示例吗?

4

3 回答 3

3

使用newId(). (注意:每次选择时,这将为您提供每行的新 ID

CREATE VIEW testView
AS
SELECT
newId() Id, x.Name
FROM dbo.EventsCollage as x;

(演示 - 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;

(演示 - 2 )

于 2013-01-25T15:51:17.497 回答
0

我认为您需要考虑使用NEWID()

CREATE VIEW testView
AS
SELECT
x.Name, NEWID() as youruniquecol
FROM dbo.EventsCollage as x;

这是SQL 小提琴

祝你好运。

于 2013-01-25T15:51:35.490 回答
0

你也可以这样做:

SELECT ROW_NUMBER() OVER( ORDER BY col1 ) AS id, col1, col2, col3
FROM MyResults

请参阅: 将标识列添加到 SQL Server 2008 中的视图

于 2017-10-16T19:07:58.997 回答