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

SQL server 2008创建视图的问题
CREATE VIEW 三建_SPJ (SNO,PNO,QTY)
AS SELECT SNO,PNO,QTY
FROM SPJ
WHERE JNO=(SELECT JNO
FROM J
WHERE JNAME='三建');
第一行显示错误“语法错误,CREATE VIEW必须是批处理中仅有的语句”,请问该怎样创建视图?
------最佳解决方案--------------------
CREATE VIEW 三建_SPJ (SNO,PNO,QTY)
AS SELECT SNO,PNO,QTY
    FROM SPJ
    WHERE JNO in (SELECT JNO
                FROM J
                WHERE JNAME='三建');

把=改为 in ,双击错误看看是否有其它字符
------其他解决方案--------------------
或者试试:
GO
CREATE VIEW 三建_SPJ (SNO,PNO,QTY)
 AS SELECT SNO,PNO,QTY
     FROM SPJ
     WHERE JNO In (SELECT JNO   --这里改成IN比较安全,如果保证只有一条,那么用等号也可以
                 FROM J
                 WHERE JNAME='三建');
------其他解决方案--------------------
CREATE VIEW 三建_SPJ
AS SELECT SNO,PNO,QTY    
FROM SPJ  
WHERE JNO=(SELECT JNO               
 FROM J               
 WHERE JNAME='三建');
------其他解决方案--------------------
视图名不需要指定列名
CREATE VIEW 三建_SPJ 
 AS
     SELECT  SNO ,
             PNO ,
             QTY
     FROM    SPJ
     WHERE   JNO = ( SELECT  JNO
                     FROM    J
                     WHERE   JNAME = '三建'
                   ) ;

------其他解决方案--------------------
 有可能是编辑器的问题,你COPY内容到记事看看是否显示正常
------其他解决方案--------------------
除了3楼大版说的,另外是否还有上下问,有其他的SQL代码?不然不应该报错。
------其他解决方案--------------------
是否还有上下文,6楼打错字了。
------其他解决方案--------------------
引用:
或者试试:
GO
CREATE VIEW 三建_SPJ (SNO,PNO,QTY)
 AS SELECT SNO,PNO,QTY
     FROM SPJ
     WHERE JNO In (SELECT JNO   --这里改成IN比较安全,如果保证只有一条,那么用等号也可以
                 FROM J