INSERT
“预定义语句”列表,我无法在SQL外修改(例如使用像Python这样的脚本语言)。NVARCHAR
字段的问题。比如说我需要运行以下SQL语句:
INSERT INTO TableX VALUES('John Doe's value') -- This is not working because of single quotes...
我需要找到一种方法来转换该字符串以插入(John Doe's value
),而无需使用SQL语句之外的方法。
我无意中尝试了类似以下语句的内容,将单引号与REPLACE
函数连接起来,并引用了另一条引号:
INSERT INTO TableX VALUES('' + REPLACE('John Doe's value'), ''', '''' + '')
或者
INSERT INTO TableX VALUES('''''' + REPLACE(''''''John Doe's value'''''''), '''''', '''''''' + '''''')
为了处理逃避字符,但它无法正常工作。
我更喜欢使用函数或简单的东西,而不是使用存储过程或更复杂的解决方案。
答案 0 :(得分:1)
如果您在SQL Server中接受,我强烈建议您停止接受INSERT语句并提供具有明确定义的参数和数据类型的存储过程。否则,您将容易受到注入攻击(我同意您的API的内部客户端不会这样做,但您的API将是易受攻击的,就是这样!)。
BTW,功能和存储过程都与本案中涉及的复杂性相似。