T-SQL转义引号字符

17

注意:这可能是重复的问题,但我找不到有效的答案。

以下是我正在尝试的内容,注意值中有一个 '。 我该怎么办?

INSERT INTO [pugraider]。[dbo]。[Realms]([Name])VALUES('Aman'Thul')

我使用的是MS SQL Server Management Studio 2008。

编辑:我正在编写一个脚本来填充查找表(ID<->名称)。


6
为了未来的读者,这将使你的代码能够正常运行,但你应该使用参数化查询。这只在作者正在使用的 MS SSMS 环境中才是可接受的。 - Austin Salonen
1个回答

24

这样做可以正常工作:

INSERT INTO [pugraider].[dbo].[Realms]([Name]) VALUES('Aman''Thul')

通常情况下,在T-SQL中硬编码这样的值的唯一原因是在数据库构建代码(例如初始化查找表)中。

否则,此代码可能是通过字符串连接从某个输入源构建一些T-SQL的结果。如果是这种情况,值得找到避免它的方法,因为它可能会使您的应用程序容易受到SQL注入攻击。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接