我需要从数据库中的表中获取数据,在我的情况下为 dbo.EventsCollage 并为其创建一个视图。
视图应包含所基于的表的所有记录,而且我应该添加一个名为 Id of 的列datatype uniqueidentifier
。
应为视图中显示的每条记录自动创建一个唯一标识符值(随机生成)
这是我如何创建视图
CREATE VIEW testView
AS
SELECT
x.Name
FROM dbo.EventsCollage as x;
你能指出我的代码示例吗?
我需要从数据库中的表中获取数据,在我的情况下为 dbo.EventsCollage 并为其创建一个视图。
视图应包含所基于的表的所有记录,而且我应该添加一个名为 Id of 的列datatype uniqueidentifier
。
应为视图中显示的每条记录自动创建一个唯一标识符值(随机生成)
这是我如何创建视图
CREATE VIEW testView
AS
SELECT
x.Name
FROM dbo.EventsCollage as x;
你能指出我的代码示例吗?
使用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 )
我认为您需要考虑使用NEWID()
:
CREATE VIEW testView
AS
SELECT
x.Name, NEWID() as youruniquecol
FROM dbo.EventsCollage as x;
这是SQL 小提琴。
祝你好运。
你也可以这样做:
SELECT ROW_NUMBER() OVER( ORDER BY col1 ) AS id, col1, col2, col3
FROM MyResults