select * from zjolsms_ig..tb_smsdeliver c where exists
(select p_number from zjolsms_ig..tb_programinfo a,zjolsms_ig..tb_userinfo b 
where a.c_id=b.u_relationid and b.u_loginname='czgd105' and b.u_level=2 and a.p_number=c.p_number)delete from zjolsms_ig..tb_smsdeliver c where exists 
(select p_number  from zjolsms_ig..tb_programinfo a,zjolsms_ig..tb_userinfo b 
where a.p_number=c.p_number and a.c_id=b.u_relationid and b.u_loginname='bbgd104' and b.u_level=2) 如上,我查询语句可以执行,但是删除语句执行不了,WHY?
报错内容:
消息 102,级别 15,状态 1,第 1 行
'c' 附近有语法错误。即delete那行的c附近有错误,我咋看也没看出错误啊?!求达人!

解决方案 »

  1.   

    delete c from zjolsms_ig..tb_smsdeliver c where exists 
    (select p_number  from zjolsms_ig..tb_programinfo a,zjolsms_ig..tb_userinfo b 
    where a.p_number=c.p_number and a.c_id=b.u_relationid and b.u_loginname='bbgd104' and b.u_level=2)
      

  2.   

    楼上是在开玩笑吗?c是我设置的表的别名啊,你delete和from之间加c什么意思?
      

  3.   

    我自己发现了,好像delete里数据表不能用别名
      

  4.   

    不过按道理说不应该啊。但我SQL 2005确实遇到了这个问题,没用别名就不出错。
    一用别名就一直报错,有达人指教下吗
      

  5.   


    declare @tb table(id int)
    insert into @tb
    select 1
    delete from @tb c where c.id = 1
      

  6.   


    delete c 
    from zjolsms_ig..tb_smsdeliver c 
    where exists 
    (select p_number  from zjolsms_ig..tb_programinfo a,zjolsms_ig..tb_userinfo b 
    where a.p_number=c.p_number and a.c_id=b.u_relationid and b.u_loginname='bbgd104' and b.u_level=2)
      

  7.   

    delete  zjolsms_ig..tb_smsdeliver  from zjolsms_ig..tb_smsdeliver c ... 
      

  8.   


    1樓是對的,加C別名,這是鏈接服務器有4部分。別名C=zjolsms_ig..tb_smsdeliver 
      

  9.   


    --这样就可以了
    delete from zjolsms_ig..tb_smsdeliver where exists 
    (select p_number  from zjolsms_ig..tb_programinfo a,zjolsms_ig..tb_userinfo b 
    where a.p_number=zjolsms_ig..tb_smsdeliver.p_number and a.c_id=b.u_relationid and b.u_loginname='bbgd104' and b.u_level=2) 
      

  10.   

    有别名的话就加别名 没有的话就不需要加zjolsms_ig..tb_smsdeliver 有个别名是 c
      

  11.   

    楼主确实是个二货
    1楼的标准答案, 你都不去试试看, 查查资料 ‘delete 别名 from’ 查都不查就否认了
    还我自己发现了, 你自己发现个屁, 自己发现也就那水平, 高手写的代码一般你都看不懂,
    所以少发表意见, 多查资料!