declare @strQuery varchar(5000)
  set @strQuery = 'insert into table1 (UserID,SP_Name,ServerIP,Real_Act) select '+convert(varchar,@UserID)+' ,''ment_Open'' ,'''+rtrim(@ServerIP)+''',''update ['+rtrim(@ServerIP)+'].owner.dbo.table2  set   level=''''''+convert(varchar,level)+'''''',Experience=''''''+convert(varchar,Experience)+'''''' '' from ['+rtrim(@ServerIP)+'].owner.dbo.table2 where USER_ID='''+@kk_UserID+''''
  print @strQuery
  execute(@strQuery)
求这句sql的正确拼法~这句报'level','Experience'列名不存在

解决方案 »

  1.   

    declare @strQuery varchar(5000)
      set @strQuery = 'insert into table1 (UserID,SP_Name,ServerIP,Real_Act) select '+convert(varchar,@UserID)+' ,''ment_Open'' ,'''+rtrim(@ServerIP)+''',''update ['+rtrim(@ServerIP)+'].owner.dbo.table2 set level=convert(varchar,level),Experience=convert(varchar,Experience)'' from ['+rtrim(@ServerIP)+'].owner.dbo.table2 where USER_ID='''+@kk_UserID+''''
      print @strQuery
      execute(@strQuery)
      

  2.   

    level=''''''+convert(varchar,level)+'''''',Experience=''''''+convert(varchar,Experience)+'''''' 
    改为
    level=''''+convert(varchar,level)+'''',Experience=''''+convert(varchar,Experience)+'''' 试试
      

  3.   

    declare @strQuery varchar(5000)
      set @strQuery = 'insert into table1 (UserID,SP_Name,ServerIP,Real_Act) select '+convert(varchar,@UserID)+' ,''ment_Open'' ,'''+rtrim(@ServerIP)+''',''update ['+rtrim(@ServerIP)+'].owner.dbo.table2  set   level=''''''+convert(varchar,level)+'''''',Experience=''''''+convert(varchar,Experience)+'''''' where User_ID='''+@kk_UserID+''''' from ['+rtrim(@ServerIP)+'].owner.dbo.table2 where USER_ID='''+@kk_UserID+''''
      print @strQuery
      execute(@strQuery)
    应该是这个是我搞错了declare @strQuery varchar(5000)
      set @strQuery = 'insert into table1 (UserID,SP_Name,ServerIP,Real_Act) select '+convert(varchar,@UserID)+' ,''ment_Open'' ,'''+rtrim(@ServerIP)+''',''update ['+rtrim(@ServerIP)+'].owner.dbo.table2 set level=convert(varchar,level),Experience=convert(varchar,Experience)'' from ['+rtrim(@ServerIP)+'].owner.dbo.table2 where USER_ID='''+@kk_UserID+''''
      print @strQuery
      execute(@strQuery)
    这个通过了,是我写错表名了,所以报列名不存在,但上面那个加了where的不通过
      

  4.   

    declare @strQuery varchar(5000)
    set @strQuery = 'insert into table1 (UserID,SP_Name,ServerIP,Real_Act) select '+convert(varchar,@UserID)+' ,''ment_Open'' ,'''+rtrim(@ServerIP)+''',''update ['+rtrim(@ServerIP)+'].owner.dbo.table2 set level=convert(varchar,level),Experience=convert(varchar,Experience)'' from ['+rtrim(@ServerIP)+'].owner.dbo.table2 where USER_ID='''+convert(varchar,@UserID)+''''
    print @strQuery
    execute(@strQuery)
      

  5.   

    declare @UserID int,@ServerIP int,@kk_UserID varchar(20)
    set @UserID=100001
    set @ServerIP=106
    set @kk_UserID='asdgf'
    declare @strQuery varchar(5000)
    set @strQuery = 'insert into table1 (UserID,SP_Name,ServerIP,Real_Act) select '+convert(varchar,@UserID)+' ,''ment_Open'' ,'''+rtrim(@ServerIP)+''',''update ['+rtrim(@ServerIP)+'].owner.dbo.table2  set   level=''''''+convert(varchar,level)+'''''',Experience=''''''+convert(varchar,Experience)+'''''' where User_ID='''''+@kk_UserID+''''''' from ['+rtrim(@ServerIP)+'].owner.dbo.table2 where USER_ID='''+@kk_UserID+''''
    print @strQuery