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

SQL 根据表获取字段字符串的更多相关文章

  1. SQL 把表中字段存储的逗号隔开内容转换成列表形式

    原文:[原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式 我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ...

  2. SQL 查找表名 字段名

    转载:http://www.accessoft.com/article-show.asp?id=6135 经常碰到一些忘记表名称的情况,此时只记得个大概,此时可通过查询系统表Sysobjects找到所 ...

  3. SQL Server表和字段说明的增加和更新

    1. 增加字段说明 EXEC sp_addextendedproperty     'MS_Description',     'some description',     'user',      ...

  4. sql server 表2字段更新到表1,mysql

    UPDATE kingdee_pro_stock set kingdee_pro_stock.org_name=ERP_BASIC_BILLNO_PREFIX.org_name,kingdee_pro ...

  5. SQL多表多字段比对方法

    目录 表-表比较 整体思路 找出不同字段的明细 T1/T2两表ID相同的部分,是否存在不同NAME 两表的交集与差集:判断两表某些字段是否相同 两表的交集与差集:找出T2表独有的id 字段-字段比较 ...

  6. 用SQL Server(T-SQL)获取连接字符串

    一般情况下,C# 连接SQL Server的字符串可以直接按照说明文档直接手动写出来,或者也可以参考大名鼎鼎的connectionstrings手动拼写 但是如果你已经连接到SQL Server也可以 ...

  7. [原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式

    我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ------> 从左边图转换成右边图,像这种需求,我们难免 ...

  8. sql修改表名字段名

    修改字段: ALTER TABLE user_info CHANGE NAME name VARCHAR(10); 修改表名alter TABLE user_role RENAME user_info ...

  9. SQL更新表的字段

    Oracle: alter table CAPIAGENTLOG modify(clientcode nvarchar2()) SQL Server: alter table CAPIAGENTLOG ...

随机推荐

  1. corosync基本使用

    相关rpm: corosync-2.4.0-4.el6.x86_64.rpm The Corosync Cluster Engine and Application Programming Inter ...

  2. 51nod 1091 线段的重叠【贪心/区间覆盖类】

    1091 线段的重叠 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 2 ...

  3. Codeforces Round #369 (Div. 2) A. Bus to Udayland【字符串/二维字符数组求连起来的座位并改为其他字符】

    A. Bus to Udayland time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  4. Codeforces 954I Yet Another String Matching Problem(并查集 + FFT)

    题目链接  Educational Codeforces Round 40  Problem I 题意  定义两个长度相等的字符串之间的距离为:   把两个字符串中所有同一种字符变成另外一种,使得两个 ...

  5. 洛谷——P2862 [USACO06JAN]把牛Corral the Cows

    P2862 [USACO06JAN]把牛Corral the Cows 题目描述 Farmer John wishes to build a corral for his cows. Being fi ...

  6. Oracle remove duplicate

    DELETE FROM your_table WHERE rowid not in (SELECT MIN(rowid) FROM your_table GROUP BY column1, colum ...

  7. 编码/解码和进制转化工具hURL

    编码/解码和进制转化工具hURL   在安全应用中,各种编码方式被广泛应用,如URL编码.HTML编码.BASE64等.而在数据分析时候,各种进制的转化也尤为频繁.为了方便解决这类问题,Kali Li ...

  8. A Beginner’s Guide to the OUTPUT Clause in SQL Server

    原文 A Beginner’s Guide to the OUTPUT Clause in SQL Server T-SQL supports the OUTPUT clause after the ...

  9. TQ2440平台上LCD驱动的移植

    参考: http://liu1227787871.blog.163.com/blog/static/205363197201242393031250/ http://blog.csdn.net/cum ...

  10. Android学Jni/Ndk 开发记录(一)

      治疗拖延症的唯一办法就是:一想起些什么 / 要做些什么就 TM 立马去做! 是的,突然想起我不会 JNI.NDK 开发.解决办法:立马去学! 一:配置 NDK 环境 下载 NDK 写入到配置文件 ...