请问:SQLServer2005下怎么建立含基础表元数据信息的视图,内详
情况如下, 我要建立一个视图V, 包含二个表A,B
A表有记录ID字段, 是自增型的,
建立视图的SQL如下
CREATE View V
AS
SELECT A.RecID, A.Code, B.Code
FROM A JOIN B ON (A.Code = B.Code)
但在程序中SELECT * FROM V WHERE 1=2得到的元数据中的[RecID]这个字段不是自增型的.在SQL2005里面的企业管理器中查看视图的RecID这个字段也不是自增型的.
请问怎么建立视图能够让V.RecID有A.RecID的自增属性.谢谢
------解决方案--------------------请问怎么建立视图能够让V.RecID有A.RecID的自增属性?
用ROW_NUMBER ()这个函数
如下:
create table ta(id int,name int)
insert ta select 1,2
union all select 1,3
create view test_v
as
select *,row=ROW_NUMBER () over (order by id)
from ta
select * from test_v
id name row
----------- ----------- --------------------
1 2 1
1 3 2
(2 行受影响)
------解决方案--------------------SELECT [RecID]=ROW_NUMBER () over (order by A.RecID)
, A.Code, B.Code
FROM A JOIN B ON (A.Code = B.Code)
------解决方案--------------------这是SQLServer2005的BUG, 可以下载相应的补丁解决
下面连接有详细说明:
http://support.microsoft.com/kb/920974/