DECLARE @i int
DECLARE @s varchar(500)
 set @i=6 
 while @i<42
BEGIN
  set @s ='insert into USysUserRights( FUserId, FItemId, FOpenRun, FAdd, FEdit,
         FDelete, FPreview, FPrint, FOutPut, Fsh, 
      Fbs, FFind, FSetFinish) values (1,'+@i+',-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1)'
  print(@s)
 set @i=@i+1
 CONTINUE
end 
服务器: 消息 245,级别 16,状态 1,行 6
将 varchar 值 'insert into USysUserRights( FUserId, FItemId, FOpenRun, FAdd, FEdit,
         FDelete, FPreview, FPrint, FOutPut, Fsh, 
      Fbs, FFind, FSetFinish) values (1,' 转换为数据类型为 int 的列时发生语法错误。
2.  select top 1 from USysUserRights 
    怎么把一行的每一列的结果组合到一起,最好是    列名A 结果1 列名B 结果2

解决方案 »

  1.   

      set @s ='insert into USysUserRights( FUserId, FItemId, FOpenRun, FAdd, FEdit,
             FDelete, FPreview, FPrint, FOutPut, Fsh, 
          Fbs, FFind, FSetFinish) values (1,'+ltrim(@i)+',-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1)'
      

  2.   


    select * from USysUsers where UserID=1
    结果
    列1   列2
    UerID UserName
         admin
    =>
    期待结果
    列1------只有一列的 结果合并 
    UerID 1  UserName admin
    或者
    1 admin
      

  3.   


    select * from USysUsers where UserID=1
    结果
    列1   列2
    UerID UserName
     1    admin
    =>
    期待结果
    列1------只有一列的 结果合并 
    UerID 1  UserName admin
    或者
    1 admin
      

  4.   

    UerID 1  UserName admin
    ----------
    看不懂,这不是全变成列名了,UP
      

  5.   


    declare @tb table (column1 varchar(200), column2 varchar(200))insert @tb 
    select 'oh', 'world'
    declare @str varchar(300)
    set @str = ''
    ;
    with test as
    (
    select fields,[values]  
    from
    (
       select column1,column2 from @tb 
    )t
    unpivot

    [values] for fields in (column1,column2)
    )as up
    )select @str = @str + c1 + ',' from 
    (
       select fields + ' ' + [values] as c1 from test 
    )t select @str
      

  6.   


    declare @s varchar(8000)
    select @s=isnull(@s+' ','')+ltrim(userid)+' '+username 
    from USysUsers 
    where UserID=1
    select @s