zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    让Oracle的 SHOW PARAMETER 命令显示隐藏参数
    insufficient privileges for 'SYS' when 'shutdown immediate'
    ROW_NUMBER
    Oracle RAC 环境下的连接管理
    git报错:fatal: bad config line 1 in file C:/Users/JIANGXIAOLIANG/.gitconfig
    MVC教程:授权过滤器
    MVC教程:MVC区域路由
    ES6语法:let和const
    git基本操作:分支管理
    Vue:计算属性
  • 原文地址:https://www.cnblogs.com/xqf222/p/3306749.html
Copyright © 2011-2022 走看看