如何用单引号插入文本sql server 2005
我想插入带单引号的文本 例如 john 到 sql server 2005 数据库中的表
I want to insert text with single quote
Eg john's to table in sql server 2005 database
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
正如 Kirtan 指出的那样,使用附加单引号来转义单引号
如果您尝试通过 sp_executesql 执行动态 sql(这首先不是一个好主意),那么下面的代码将适合您
Escape single quote with an additional single as Kirtan pointed out
And if you are trying to execute a dynamic sql (which is not a good idea in the first place) via sp_executesql then the below code would work for you
答案实际上取决于您如何执行 INSERT。
如果您指定 SQL 文字,则需要使用双击方法:
如果您从代码执行 INSERT,请使用参数:
如果您的数据包含直接或间接的用户输入,使用参数。 参数可防止 SQL 注入攻击。 永远不要通过用户输入构建动态 SQL。
The answer really depends on how you are doing the
INSERT
.If you are specifying a SQL literal then you need to use the double-tick approach:
If you are doing the INSERT from code, use parameters:
If your data contains user-input, direct or indirect, USE PARAMETERS. Parameters protect against SQL Injection attacks. Never ever build up dynamic SQL with user-input.
这对我有用:
基本上,您可以使用要插入的单引号并将其替换为两个引号。 因此,如果要插入文本字符串 ('text') 并在其周围添加单引号,则为 ('''text''')。 希望这可以帮助。
This worked for me:
Basically, you take the single quote you want to insert and replace it with two. So if you want to insert a string of text ('text') and add single quotes around it, it would be ('''text'''). Hope this helps.
或者您可以使用存储过程并将参数传递为 -
如果您使用的是 INSERT 查询而不是存储过程,则必须用两个引号对引号进行转义,否则如果不这样做也没关系。
Or you can use a stored procedure and pass the parameter as -
If you are using an INSERT query and not a stored procedure, you'll have to escape the quote with two quotes, else its OK if you don't do it.
这个答案适用于 SQL Server 2005、2008、2012。
有时该值有许多单引号。 而不是像上面使用
'John''s'
那样在每个单引号旁边添加一个单引号。 还有一些示例使用 REPLACE 函数来处理值中的多个单引号。尝试以下操作。 这是一条更新语句,但您也可以在
INSERT
语句中使用它。This answer works in SQL Server 2005, 2008, 2012.
At times the value has MANY single quotes. Rather than add a single quote next to each single quote as described above with
'John''s'
. And there are examples using theREPLACE
function to handle many single quotes in a value.Try the following. This is an update statement but you can use it in an
INSERT
statement as well.您询问如何在 SQL Server 中转义
撇号字符 (')
。 上面的所有答案都很好地解释了这一点。但是,根据具体情况,
右单引号字符 (')
可能比较合适。(不需要转义字符)
• 撇号 ( U+0027)
维基百科上的 Ascii 撇号
• 右单引号 (U+2019)
< a href="https://en.wikipedia.org/wiki/List_of_Unicode_characters#Unicode_symbols" rel="nofollow">维基百科上的 Unicode 右单引号
You asked how to escape an
Apostrophe character (')
in SQL Server. All the answers above do an excellent job of explaining that.However, depending on the situation, the
Right single quotation mark character (’)
might be appropriate.(No escape characters needed)
• Apostrophe (U+0027)
Ascii Apostrophe on Wikipedia
• Right single quotation mark (U+2019)
Unicode Right single quotation on Wikipedia