SQL SERVER将一个表的所有列名[字段名]以逗号分隔连接成字符串(创建自定义标量值函数形式)

SQL Server 2016-05-19 461浏览 2评论 收藏本文

microsoft-sqlserver

之前总结一个关于《MYSQL 获取某个表的各列名(字段名)并以逗号分隔(隔开)连接》的文章,有MySQL需求的朋友请到该篇阅读详情。由于SQL SERVER和MySQL两者实现的方式不同,所以本文作一个关于如何使用SQK语句将SQL SERVER表中的所有列名(字段名)以逗号分隔并连接成字符串的示例,本示例是创建的一个自定义标量值函数。使用起来也是比较方便的,具体代码如下:

CREATE FUNCTION fnColList(@in_vcTbl_name VARCHAR(8000))
RETURNS VARCHAR(8000)
AS 
BEGIN 
DECLARE @colList2BuildAuditTable VARCHAR(MAX)
SELECT @colList2BuildAuditTable = COALESCE(@colList2BuildAuditTable+',','')+'['+B.NAME+']' FROM SYSOBJECTS A JOIN SYSCOLUMNS B ON A.ID=B.ID 
WHERE A.ID=OBJECT_ID(@in_vcTbl_name) 
ORDER BY B.COLORDER 
RETURN @colList2BuildAuditTable
END
使用方式如:
SELECT dbo.fnColList('YOUR_TABLE')
需要注意:

1.由于我们是在数据库默认的dbo用户下创建的函数fnColList,所以,dbo不能少;

2.YOUR_TABLE为你需要获取所有列表(字段名)并以逗号分隔连接的表名。

 

如有问题或者更好的建议,欢迎留言反馈交流。

如果你觉得这篇文章对你有用,那就请点个赞吧。

转载请注明:图享网 » SQL SERVER将一个表的所有列名[字段名]以逗号分隔连接成字符串(创建自定义标量值函数形式)

验证码

文章评论

  • lampo (2016-06-03 07:08)

    谢谢来访~~~

  • 603821870 (2016-06-02 09:44)

    看看您的博客!