日期:2014-05-17  浏览次数:20787 次

关于视图
WINDOWS 2003服务器,SQL 2000 SERVER。用A,B两个表创建一个视图,关联字段值M的长度正常为9位,当A表增加一条记录且M的长度是11位(之前的长度都是9位)时,该视图就无法打开,请问这是为什么?
------最佳解决方案--------------------
引用:
引用:

这个应该没有什么关系,那你把字段的长度统一一下再试试



我把字段值长度不一致记录删除后又能正常打得开,但问题是有时候必须要用到长度不一致的。这个该怎么办?

用N/VARCHAR类型。

------其他解决方案--------------------
你不用视图,把视图里面的查询语句拿出来执行会有问题吗?如果没有的话可以考虑封装到存储过程里面,视图这个东西还没怎么深入研究。有些内部机制可能会忽略。
------其他解决方案--------------------
那要看你视图里面咋写.报啥错了么?

------其他解决方案--------------------
要么报错,要么没问题,如果你的长度都填满了数据,可能会匹配不出来而已
------其他解决方案--------------------
视图长时间打不开,如果不死机就会提示“连接超时”
------其他解决方案--------------------
select * from 视图呢?会报错吗?
------其他解决方案--------------------
补充一下,在A表的关联字段我建了主索引,在B表的关联字段我建了主键。
------其他解决方案--------------------
SELECT TOP 1 1  FROM V_NAME

?
你别说界面右键打开显示所有行?
------其他解决方案--------------------
引用:
select * from 视图呢?会报错吗?



select 会长时间没反应,就连我在企业管理器中找到该视图时直接打开都没反应,长时间后会提示“连接超时”。我把服务器重启后,又可以打开,可一段时间后又打不开,又得重启服务器。
------其他解决方案--------------------
引用:
引用:

select * from 视图呢?会报错吗?



select 会长时间没反应,就连我在企业管理器中找到该视图时直接打开都没反应,长时间后会提示“连接超时”。我把服务器重启后,又可以打开,可一段时间后又打不开,又得重启服务器。

是你本地视图?


------其他解决方案--------------------
引用:
SELECT TOP 1 1  FROM V_NAME

?
你别说界面右键打开显示所有行?


这样查询我没试过,因为我的程序运行需要SELECT *  FROM V_NAME。
------其他解决方案--------------------
引用:
引用:
引用:

select * from 视图呢?会报错吗?



select 会长时间没反应,就连我在企业管理器中找到该视图时直接打开都没反应,长时间后会提示“连接超时”。我把服务器重启后,又可以打开,可一段时间后又打不开,又得重启服务器。



是你本地视图?






------其他解决方案--------------------
不知道跟WINDOWS2003 有没有关系?
------其他解决方案--------------------
这个应该没有什么关系,那你把字段的长度统一一下再试试
------其他解决方案--------------------
引用:
引用:

select * from 视图呢?会报错吗?



select 会长时间没反应,就连我在企业管理器中找到该视图时直接打开都没反应,长时间后会提示“连接超时”。我把服务器重启后,又可以打开,可一段时间后又打不开,又得重启服务器。

看你这个视图数据量大不大.如果大.你SELECT .因为你的关联条件列长度不一样.肯定得转换了.

你是查看代码查不 了还是数据?

查看代码肯定没问题啊.
------其他解决方案--------------------
引用:
引用:
引用:

select * from 视图呢?会报错吗?



select 会长时间没反应,就连我在企业管理器中找到该视图时直接打开都没反应,长时间后会提示“连接超时”。我把服务器重启后,又可以打开,可一段时间后又打不开,又得重启服务器。