我看了清华大学出版的《SQL实用简明教程》,上面有些子查询的语句我在MS SQL SERVER2000个人版中无法实现。
比如把一个表中的内容复制到另一个新表中去。“insert into new_table values(select name,sex,id,salary from emplyee)”两个表的字段属性完全一样,我直接执行里面的select语句也没问题,但是一旦嵌套执行,立即出错
“服务器: 消息 156,级别 15,状态 1,行 1
在关键字 'select' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: ')' 附近有语法错误。”
再比如update table1 t set name='公司' ……(略)
又出错
“服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 't' 附近有语法错误。”
为什么连表的别名都不能用呢?
请问到底是什么原因?是不是MS SQL SERVER2000个人版不支持这种子查询语句?

解决方案 »

  1.   

    insert into new_table select name,sex,id,salary from emplyee
      

  2.   

    update t set name='公司' from tablename t
      

  3.   

    你的语句写的有问题,把它贴出来看看,
    要不你再仔细检查一下,
    MS SQL SERVER2000个人版支持这种子查询语句
      

  4.   

    个人版和专业版的区别主要在支持的连接数上再比如update table1 t set name='公司' ……(略)这句话也是语法问题  只有在from后面出现的表才能用别名 
    比方 update table1 from table1 t,table2 t1 set name='公司'  ……(略)
      

  5.   

    你的sql语句有问题,与sql server的版本没有任何关系。
      

  6.   

    。“insert into new_table values(select name,sex,id,salary from emplyee)”
    =>
    insert into new_table select 'name','sex',id,salary from emplyee
      

  7.   

    你用values关键字,就必须写标量列表,不能用select返回的数据。否则就不要用values
      

  8.   

    书上很多语法都是错误的,编书的人压根就没有去实际操作过,这种错误很常见的!具体使用方法update table1 set colA=table2.colB from table2 where table1.xxxx=xxx and table2.xxx=xxx
      

  9.   

    insert new_table 
    select name,sex,id,salary from emplyee
    这样不知道可不可以
      

  10.   

    insert new_table from select nam,sex,id,salary from emplyee
    少了个FROM