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. Visual Studio跨平台开发(2):Xamarin.iOS基本控制项介绍

    前言 在上一篇文章中, 我们介绍了Xamarin 以及简单的HelloWorld范例, 这次我们针对iOS的专案目录架构以及基本控制项进行说明. 包含UIButton,UISlider,UISwitc ...

  2. ubuntu for windows10设置中文

    运行 sudo dpkg-reconfigure locales ,第一个界面是选择区域,找到后面的zh_CN.UTF-8 UTF-8,回车确认,第二个界面是选择语言,选择zh_CN.UTF-8,回车 ...

  3. PostgreSQL备份和恢复数据表

    备份数据表: pg_dump -U user_name db_name -t table_name -f /tmp/backup_file.suffix 恢复数据表: 方法1: 登录数据库:\i /t ...

  4. vi / vim 设置

    一.vi下方向键输入后,出现ABCD,解决方法: 在vi中输入:set nocp 按回车即可. 二.设置TAB缩进4个空格: 为了vim更好的支持python写代码,修改tab默认4个空格有两种设置方 ...

  5. 线段树【p1607】[USACO09FEB]庙会班车Fair Shuttle

    Description 逛逛集市,兑兑奖品,看看节目对农夫约翰来说不算什么,可是他的奶牛们非常缺乏锻炼--如果要逛完一整天的集市,他们一定会筋疲力尽的.所以为了让奶牛们也能愉快地逛集市,约翰准备让奶牛 ...

  6. div与table区别

    1:速度和加载方式方面的区别 div 和 table 的差异不是速度,而是加载方式,速度只能是指网络速度,如果速度足够快,是没有差异的: div 的加载方式是即读即加载,遇到 <div> ...

  7. [BZOJ1179][APIO2009][强连通分量Tarjan+spfa]ATM

    [BZOJ1179][APIO2009]ATM Input 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i ...

  8. 【SQL Server 学习系列】-- sql 随机生成中文名字

    原文:[SQL Server 学习系列]-- sql 随机生成中文名字 ,) )) -- 姓氏 ,) )) -- 名字 INSERT @fName VALUES ('赵'),('钱'),('孙'),( ...

  9. Overview of iOS Crash Reporting Tools: Part 2/2

    Thanks for joining me for the second part of this two-part series on crash reporting services! The f ...

  10. Android 高版本API方法在低版本系统上的兼容性处理

    Android 版本更替,新的版本带来新的特性,新的方法. 新的方法带来许多便利,但无法在低版本系统上运行,如果兼容性处理不恰当,APP在低版本系统上,运行时将会crash. 本文以一个具体的例子说明 ...