插入单引号值时出错

时间:2009-10-05 08:26:53

标签: sql-server vb6

使用SQL Server 2000和VB6

表1

EmpName1 

Raja
Rav'i
Ramu'i
Rajes'ih

表2

EmpName2

....

当我从table1.empname1插入table2.empname2时,它只插入raja,未插入剩余的行,显示错误'(单引号)

"Showing error as incorrect syntax near rav"

vb6代码。

INSERT INTO table2 (EmpName) VALUES('" & EmpName & "')

如何使用单引号插入名称。

需要查询和代码帮助。

2 个答案:

答案 0 :(得分:2)

强烈建议使用参数化查询(请参阅例如this article),而不是将SQL查询构建为字符串。这可以保护您免受多种形式的SQL注入,并且通常也更快。

或者直接使用某种持久性框架,如果你有很多数据库交互。

您的查询将无效,因为在字符串SQL查询中,'必须转义(作为'')。顺便说一句,如果你想将一个表中的值插入到另一个表中,那么在执行SELECT,然后在循环中插入INSERT通常不是一个好主意,就像你一样。做一个

  

INSERT INTO table2 SELECT ... FROM table1

答案 1 :(得分:1)

你可以用

之类的东西来逃避单引号

empName = replace(empName,“'”,“''”)

或参数化您的查询...