首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

CREATE VIEW 简单有关问题!解决马上结贴

2012-02-29 
CREATE VIEW 简单问题!解决马上结贴 CREATEVIEWvRULE_INFOASSELECTE.CARID,E.RULE_ID,E.Status,P.RULEIDFR

CREATE VIEW 简单问题!解决马上结贴

CREATE   VIEW   vRULE_INFO   AS
SELECT   E.CARID,         E.RULE_ID,       E.Status,   P.RULEID
FROM       CAR_RULE   E,   RULE_INFO   P
WHERE     (P.RULEID   =   E.RULE_ID)
AND         (E.Status=1)  
OR           (E.Status=3)  
SELECT   *   FROM   vRULE_INFO   WHERE   CarId   =   4用这句执行上面的视图   得到下面子查询相同结果怎么改视图啊   谢谢   解决马上结贴


SELECT   *   FROM   RULE_INFO   AS   P     WHERE   RULEID   IN(SELECT   RULE_ID   FROM   CAR_RULE   WHERE   CarId   =   4   AND   Status=1   or   Status=3)  

[解决办法]
修改视图用alter

ALTER VIEW vRULE_INFO AS
SELECT * FROM RULE_INFO AS P WHERE RULEID IN(SELECT RULE_ID FROM CAR_RULE WHERE CarId = 4 AND Status=1 or Status=3)
[解决办法]
alter

[解决办法]
你們沒有看懂樓主的意思

按他的意思,是要將視圖修改後,通過執行SELECT * FROM vRULE_INFO WHERE CarId = 4來得到與SELECT * FROM RULE_INFO AS P WHERE RULEID IN(SELECT RULE_ID FROM CAR_RULE WHERE CarId = 4 AND Status=1 or Status=3)一樣的結果

但是有一個問題

子查詢的結果中的列是RULE_INFO表的所有列,那麼如果要通過視圖也得到相同的結果,視圖的列中必須包含CarId,從子查詢中只能分析出CarId列屬於表CAR_RULE,但在不在RULE_INFO表中就不知道了

热点排行