当前位置: 代码迷 >> Sql Server >> 急数据库怎么在生成视图的时候,添加一个自动增加的ID
  详细解决方案

急数据库怎么在生成视图的时候,添加一个自动增加的ID

热度:70   发布时间:2016-04-27 10:46:12.0
急!数据库怎样在生成视图的时候,添加一个自动增加的ID?
在做数据库视图的时候,怎样在视图中增加一个ID,自动增长的,使用过create view v_view 
as 
select id = (select count(1) from ta where 主键 < a.主键),* from ta a 
go 
但是因为是多表链接,所以有重复的ID,望高手指点!

------解决方案--------------------
SQL code
-->数据库版本:-->Microsoft SQL Server 2008 (RTM) - 10.0.1600.22--> 测试数据:t1IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N't1') AND type in (N'U')) DROP TABLE t1GO---->建表create table t1([a] int,[b] varchar(2),[c] varchar(2),[d] varchar(1))insert t1select 1,'b','c','d' union allselect 2,'b','c1','d' union allselect 3,'b1','c','d' union allselect 4,'b2','c','d'GO-->数据库版本:-->Microsoft SQL Server 2008 (RTM) - 10.0.1600.22--> 测试数据:t2IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N't2') AND type in (N'U')) DROP TABLE t2GO---->建表create table t2([a] int,[e] varchar(2))insert t2select 1,'b' union allselect 2,'b' union allselect 3,'b1' union allselect 4,'b2'GO--> 查询结果SELECT * FROM t1--> 删除表格--DROP TABLE t1--> 查询结果SELECT * FROM t2--> 删除表格--DROP TABLE t2create view v_view   as SELECT  ROW_NUMBER() over (order by getdate()) as id,t1.a,t1.b,t1.c,t1.d,t2.eFROM t1 join t2 on t1.a=t2.agoselect * from  v_view  drop view v_view
------解决方案--------------------
SQL code
-----if OBJECT_ID('Temp') is not nulltruncate table Tempdrop table Tempgo--SELECT  IDENTITY(int,1,1) as id,t1.a,t1.b,t1.c,t1.d,t2.e into TempFROM t1 join t2 on t1.a=t2.ago--create view v_view   as select * from Tempgo--select * from v_view
------解决方案--------------------
3楼答案是对的。
  相关解决方案