You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数据库存储SQL语句后复制丢失换行,如何保留原格式?

解决SQL语句存储后复制丢失换行符的问题

问题根源

你当前插入数据时仅用空格拼接字符串,并未将换行符存入数据库字段,因此读取复制时自然丢失原格式。要保留换行,需从存储源头和读取复制操作两个环节处理:


一、从存储源头解决(推荐)

确保插入时将换行符写入字段,有两种简便方式:

1. 显式添加换行符

SQL Server中,Windows风格换行符为CHAR(13)+CHAR(10)(CR+LF),Linux风格为CHAR(10),修改插入语句如下:

create table toerase_SQL
(
    SqlSource varchar(max)
)
insert into toerase_SQL 
select   
'select '+CHAR(13)+CHAR(10)+
'VendorId, '+CHAR(13)+CHAR(10)+
'VendorName, '+CHAR(13)+CHAR(10)+
'VendorAddress, '+CHAR(13)+CHAR(10)+
'VendorCity, '+CHAR(13)+CHAR(10)+
'VendorState, '+CHAR(13)+CHAR(10)+
'VendorZip '+CHAR(13)+CHAR(10)+
'from Vendor '

select * from toerase_SQL

2. 使用多行字符串字面量(SQL Server 2016+ 更便捷)

直接在SSMS中编写多行字符串,用单引号包裹,SSMS会自动保留换行符:

insert into toerase_SQL 
select '
select 
VendorId,
VendorName,
VendorAddress,
VendorCity,
VendorState,
VendorZip
from Vendor
'

注:若字段类型为nvarchar(max),需在字符串前加N(N'...')避免乱码,纯SQL语句用varchar(max)即可。


二、读取复制时保留格式

若字段已存储换行符,复制时需注意SSMS操作方式:

  • 不要直接选中单元格复制,右键点击目标单元格,选择复制值(Copy Value),粘贴到文本编辑器即可保留换行。
  • 或切换查询结果模式:点击顶部菜单查询 -> 结果到 -> 结果到文本,执行查询后直接复制结果文本,格式会完整保留。

三、修复已存储的无格式SQL

若已有大量无换行的SQL存于表中,可通过字符串替换临时修复(仅适用于类似示例的规整格式):

UPDATE toerase_SQL
SET SqlSource = REPLACE(
    REPLACE(SqlSource, ', ', ','+CHAR(13)+CHAR(10)),
    ' from ', CHAR(13)+CHAR(10)+' from '
)

此方法仅针对规律格式的SQL,复杂SQL建议手动调整,核心还是从存储源头规范格式。

内容的提问来源于stack exchange,提问作者fdkgfosfskjdlsjdlkfsf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 02:57:38