• SQLSERVER查询单个数据表所有字段名组合成的字符串脚本


    --SQLSERVER查询单个数据表所有字段名组合成的字符串脚本

    --应用场合: 用于生成SQL查询字符串中select 字段名列表1 from table group by 字段名列表2 中的字段名列表1和字段名列表2部分

    --定义数据表名称变量
    Declare @TableName nvarchar(250)
    Set @TableName='您的数据表名称' --这里修改成您要查询的数据表名称

    --定义列总数变量
    Declare @TotalColumns int
    Select @TotalColumns=count(name) from syscolumns Where ID=OBJECT_ID(@TableName)
    print '数据表'+@TableName+'字段总数为:'+Convert(nvarchar(20),@TotalColumns)

    --定义所有字段名称字符串变量
    Declare @ColumnsString nvarchar(4000)
    set @ColumnsString=''

    --定义游标中输出的字段名变量
    Declare @ColumnName nvarchar(255)


    --通过游标读取指定数据表的所有字段

    --声明游标mycursor
    declare mycursor cursor for select name from syscolumns Where ID=OBJECT_ID(@TableName)  order by colid
     
    --打开游标
    open mycursor
     
    --从游标里取出数据赋值到我们刚才声明的字段名变量中
    fetch next from mycursor into @ColumnName
     
    --如果游标执行成功 
    while (@@fetch_status=0)
    begin
     
     --显示出我们每次用游标取出的值
     Set @ColumnsString=@ColumnsString+','+@ColumnName

     --用游标去取下一条记录
        fetch next from mycursor into @ColumnName
    end

    --关闭游标
    close mycursor
    --撤销游标
    deallocate mycursor

    --如果末尾包含逗号则去除
    if left(@ColumnsString,1)=',' set @ColumnsString=substring(@ColumnsString,2,len(@ColumnsString)-1)
    print @ColumnsString

    --多表联合查询
    declare @GroupColumnsString nvarchar(4000) --如果显示不全,这里自己修改更大的数字
    declare @PrefixString nvarchar(255)
    set @PrefixString=@TableName --这里可以修改成你想要的字符串
    set @GroupColumnsString=replace(@ColumnsString,',',','+@PrefixString+'.')
    set @GroupColumnsString=@PrefixString+'.'+@GroupColumnsString
    print @GroupColumnsString

  • 相关阅读:
    在线自动创建springboot工程
    java线程自带队列的使用以及线程阻塞
    如何分析java内存泄漏问题
    java接口入参模板化,适用于企业化服务远程调度模板化的场景,接口入参实现高度可配置化
    打造springboot高性能服务器(spring reactor的使用)
    docker 5 docker-阿里云加速配置
    docker 4 docker的三要素
    docker 3 docker安装
    docker 2 docker介绍
    docker 1 为什么要使用docker
  • 原文地址:https://www.cnblogs.com/xqf222/p/3306749.html
Copyright © 2020-2023  润新知