日期:2014-05-18  浏览次数:20488 次

请问: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/