【问题标题】:T-SQL: When string concatenation is the only option or how to correctly escape SQL stringsT-SQL:当字符串连接是唯一选项或如何正确转义 SQL 字符串时
【发布时间】:2015-07-15 10:39:36
【问题描述】:

我很清楚,参数化 SQL 语句的唯一可靠方法是使用参数、命名或其他方式。

不幸的是,并不总是可以使用这些。例如,

create login [user] with password = 'p@$$w0rd'

根本不接受参数。

在特定情况下,在 T-SQL 中转义字符串最可靠的方法是什么?

【问题讨论】:

  • 允许表达式吗?您可以将所有字符转换为它们的代码并将它们连接起来吗?这可能是“可靠的”(但读起来很可怕)。

标签: sql sql-server tsql escaping


【解决方案1】:

This answer 看起来很相关,但如果您需要更通用的解决方案,那么您可以要求数据库为您引用它:

SELECT QUOTENAME(@myvalue, '''')

这应该会返回一个在连接 SQL 中可以安全使用的值。

【讨论】:

    猜你喜欢
    • 2010-11-19
    • 2011-03-23
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2021-09-01
    • 2011-10-23
    • 2023-04-08
    • 2017-06-23
    相关资源
    最近更新 更多