之前总结一个关于《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为你需要获取所有列表(字段名)并以逗号分隔连接的表名。
如有问题或者更好的建议,欢迎留言反馈交流。
如果你觉得这篇文章对你有用,那就请点个赞吧。
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册