在做数据库视图的时候,怎样在视图中增加一个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楼答案是对的。