SSMS 20下SQL生成带双引号包裹的CSV导出语句需求
批量生成SQL Server CSV导出格式化语句
直接使用以下SQL脚本,自动为指定范围内的所有表生成符合你需求的格式化查询语句:
SELECT CONCAT( 'SELECT ', STRING_AGG( CONCAT( 'CONCAT(''"'', REPLACE(REPLACE(', QUOTENAME(c.name), ', '','', ''"'',''"''), ''"'',''"""'')'',''"'') AS ', QUOTENAME(c.name) ), ', ' ), ' FROM ', QUOTENAME(s.name), '.', QUOTENAME(t.name), ';' ) AS ExportSQL FROM sys.tables t JOIN sys.schemas s ON t.schema_id = s.schema_id JOIN sys.columns c ON t.object_id = c.object_id -- 可选:添加过滤条件,只处理特定架构或表 -- WHERE s.name = 'Production' -- AND t.name IN ('ProductDescription', 'Product') GROUP BY s.name, t.name ORDER BY s.name, t.name;
说明:
- 脚本通过系统视图
sys.tables、sys.schemas、sys.columns自动获取所有表和字段信息 - 自动为每个字段生成你手动编写的格式化逻辑:
- 字段首尾添加双引号
- 字段内的逗号替换为
"," - 字段内的双引号替换为
"""
- 使用
QUOTENAME函数处理表名和字段名,避免特殊字符导致的语法错误 - 执行脚本后,将结果中的
ExportSQL列内容复制出来,即可直接执行对应的表查询,导出符合要求的CSV结果 - 若只需处理特定架构或表,取消注释并修改WHERE子句的过滤条件即可
内容的提问来源于stack exchange,提问作者Luuk
相关产品推荐
相关产品推荐

