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

如何修改SQL Server 2019中QUOTENAME的默认分隔符为单引号?

解决QUOTENAME默认分隔符改为单引号的问题

SQL Server内置的QUOTENAME函数默认分隔符是硬编码的方括号,无法直接修改其默认行为。要实现默认使用单引号且无需每次传参的需求,最直接的方案是创建自定义标量函数来封装QUOTENAME。

方案1:固定默认单引号的自定义函数

创建一个只接收字符串参数的函数,内部调用QUOTENAME时指定单引号作为分隔符:

CREATE FUNCTION dbo.QUOTENAME_SingleQuote
(
    @UnquotedString NVARCHAR(128)
)
RETURNS NVARCHAR(258)
AS
BEGIN
    RETURN QUOTENAME(@UnquotedString, '''')
END
GO

使用时直接传入字符串即可,无需指定分隔符:

SELECT dbo.QUOTENAME_SingleQuote('test string') -- 返回 'test string'

方案2:支持可选分隔符的重载函数

如果偶尔需要使用其他分隔符,可以创建带可选参数的函数,默认值设为单引号:

CREATE FUNCTION dbo.QUOTENAME_Custom
(
    @UnquotedString NVARCHAR(128),
    @QuoteCharacter NCHAR(1) = ''''
)
RETURNS NVARCHAR(258)
AS
BEGIN
    RETURN QUOTENAME(@UnquotedString, @QuoteCharacter)
END
GO

使用示例:

  • 默认用单引号:SELECT dbo.QUOTENAME_Custom('test string')
  • 临时改用方括号:SELECT dbo.QUOTENAME_Custom('test string', '[')

注意事项

  • 自定义函数需在目标数据库下创建,调用时记得带上架构名(如dbo.);
  • 若函数涉及跨数据库调用,需指定完整的数据库名.架构名.函数名格式;
  • 函数的参数长度和返回值长度与原生QUOTENAME保持一致,确保兼容性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:48:19