DECLARE
@Sqls nvarchar(300),
@Sqls1 nvarchar(300)set @Sqls = 'select ID from [UserLine] where UserID = ''temp'''
exec sp_executesql @Sqlsif @@rowcount > 0 
select 1
else
select 2
returnset @Sqls1 = 'update [UserLine] set UserID = ''222'''
exec @Sqls1
go
我用上面的代码就更新不了 我要是单独写
DECLARE
@Sqls nvarchar(300),
@Sqls1 nvarchar(300)set @Sqls1 = 'update [UserLine] set UserID = ''222'''
exec @Sqls1
go就可以更新 请问为什么

解决方案 »

  1.   

    对不起 重新贴一下这个不行
    DECLARE
    @Sqls nvarchar(300),
    @Sqls1 nvarchar(300)set @Sqls = 'select ID from [UserLine] where UserID = ''山顶洞人'''
    exec sp_executesql @Sqlsif @@rowcount > 0 
    select 1
    else
    select 2
    returnset @Sqls1 = 'update [UserLine] set UserID = ''222'''
    exec sp_executesql @Sqls1
    go
    这个可以DECLARE
    @Sqls nvarchar(300),
    @Sqls1 nvarchar(300)
    set @Sqls1 = 'update [UserLine] set UserID = ''222'''
    exec sp_executesql @Sqls1
    go
      

  2.   


    请问我应该怎么处理?是不是if @@rowcount > 0 
            select 1
        else
            select 2
        return
    这里的问题?
      

  3.   

    这样也可以DECLARE
    @Sqls nvarchar(300),
    @Sqls1 nvarchar(300)set @Sqls = 'select ID from [UserLine] where UserID = ''山顶洞人'''
    exec sp_executesql @Sqlsif @@rowcount > 0 
    select 1
    else
    set @Sqls1 = 'update [UserLine] set UserID = ''444'''
    exec sp_executesql @Sqls1
    return
      

  4.   

    是的,你这个判断起什么作用?好像没有用
    把return  注释掉吧!
      

  5.   

    哦 是没什么用 我是测试用的。。把return注释掉就好了  请问为什么注释掉 return就可以了?
    不好意思。。 我的sql语法书 还在运输中。。 >.<
      

  6.   

    return 就返回不执行了!