我需要从数据库中的表中获取数据,在我的情况下是dbo.EventsCollage并为它创建一个View。
View应包含所有基于表的记录,另外我应该添加一个名为Id datatype uniqueidentifier
的列。
应为视图
中显示的每个记录自动创建uniqueidentifier值(随机生成)这是我如何创建视图
CREATE VIEW testView
AS
SELECT
x.Name
FROM dbo.EventsCollage as x;
你能指点一下代码示例吗?
答案 0 :(得分:2)
使用newId()
。 ( 注意:每次选择 时,每行会为您提供一个新ID)
CREATE VIEW testView
AS
SELECT
newId() Id, x.Name
FROM dbo.EventsCollage as x;
(DEMO - 1)
或者,如果每次都需要每行具有相同的uniqueidentifier,请尝试( 注意:这将只能处理100mil记录 )
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;
(DEMO - 2)
答案 1 :(得分:0)
我认为你需要考虑使用NEWID()
:
CREATE VIEW testView
AS
SELECT
x.Name, NEWID() as youruniquecol
FROM dbo.EventsCollage as x;
这是SQL Fiddle。
祝你好运。答案 2 :(得分:0)
你也可以这样做:
SELECT ROW_NUMBER() OVER( ORDER BY col1 ) AS id, col1, col2, col3
FROM MyResults