跳转到正文

T-SQL 格式化工具

为 SQL Server 和 Azure SQL 格式化 T-SQL,支持 [bracket] 标识符、N'' Unicode 字符串、#temp 表、@variables 和 GO 批次分隔符等规则。CROSS APPLY 和 OUTER APPLY 会另起一行,OUTPUT 和 FOR JSON 保留为子句,BEGIN TRANSACTION 不会被误当作代码块的开头。对于数据库开发人员,未闭合的字符串和括号会报告所在行和列。

重置

常见问题

支持哪些 T-SQL 语法?

可识别 [方括号] 标识符(包括 ]] 转义)或双引号标识符、N'' Unicode 字符串、#temp 和 ##global 临时表、@variables 以及 @@ 系统函数。geography::Point 等静态方法调用也会保持原样。

如何处理 GO 批次分隔符?

仅包含 GO 的行(也可以带有 GO 5 这样的重复次数)会结束一个批次。它会保留在单独一行,每个批次都会分别格式化。

支持哪些 T-SQL 子句?

CROSS APPLY 和 OUTER APPLY 会像连接一样另起一行。OUTPUT、OPTION、FOR XML 和 FOR JSON 会与标准子句一样各自保留为独立子句。

它能格式化存储过程吗?

可以。BEGIN 和 END 代码块、BEGIN TRY 和 BEGIN CATCH、IF 和 ELSE 以及 WHILE 循环都会缩进。BEGIN TRANSACTION 和 BEGIN TRAN 会被视为语句,而不是代码块的开头。

支持 MERGE 吗?

可以。WHEN MATCHED、WHEN NOT MATCHED BY TARGET 和 WHEN NOT MATCHED BY SOURCE 分支都会另起一行。

注释会保留吗?

可以。-- 行注释和 /* 块注释 */ 会保留在原处。多行块注释会根据新位置重新缩进。

它会更改关键字的大小写吗?

不会。关键字和标识符会保留你输入时的大小写。只有空白字符和换行会改变。

会检测哪些错误?

会报告未闭合的字符串、方括号标识符或带引号的标识符、块注释以及不匹配的括号,并指出所在行和列。该工具不会连接到 SQL Server,也不会验证对象名称。

输入内容可以有多大?

每次请求最多 1 MB,每条语句或每个批次最多 128 KB。语句之间以空行分隔。

可以选择缩进方式吗?我的 SQL 会保存吗?

你可以使用 2 个或 4 个空格,也可以使用制表符。脚本只会在内存中格式化,绝不会保存。

关于 OneClick Pro

OneClick Pro 是一个免费的工具集合,包含超过 150 种网络工具,助你处理日常工作:转换图像和单位、格式化和验证代码、检查域名和 SEO,以及处理文本、日期和数字。所有工具均可免注册、免订阅使用;你输入的内容仅用于计算结果,绝不会被存储。你可以将它用作处理临时任务的快捷工具箱,也可以收藏每天都会用到的工具。