Sql server 2005 我的字符串包含特殊字符';那怎么取呢?。

Sql server 2005 我的字符串包含特殊字符';那怎么取呢?。,sql-server-2005,Sql Server 2005,在我的数据库中有一个包含特殊字符“的字符串,但当我尝试获取它时,会出现一个错误,称为字符串termaination,例如: String temp=a'bc SELECT * FROM table where name like 'temp%' 您需要将单引号加倍,如下所示:a''bc 然后,整个查询变为 SELECT * FROM table where name like 'a''bc%' 注意:如果所讨论的模式源自用户输入,请注意(另请参见)。在T-SQL中,您可以通过将引号放在带引号

在我的数据库中有一个包含特殊字符“的字符串,但当我尝试获取它时,会出现一个错误,称为字符串termaination,例如:

String temp=a'bc
SELECT * FROM table where name like 'temp%'

您需要将单引号加倍,如下所示:
a''bc

然后,整个查询变为

SELECT * FROM table where name like 'a''bc%'

注意:如果所讨论的模式源自用户输入,请注意(另请参见)。

在T-SQL中,您可以通过将引号放在带引号的字符串中两次来转义引号,例如:

SELECT * FROM table where name like 'a''bc%'

您还可以使用参数化查询而不是内联SQL

DECLARE @var NVARCHAR(50)
SET @var = ISNULL('%' + your_variable_here + '%', '') 

SELECT * FROM [dbo].[TableName] where [SomeColumn] like @var

如果您是从客户端代码(例如c#)调用此函数,则使用参数化查询:

string temp = "a'bc";
string sql = "SELECT * FROM table WHERE name LIKE @Name + '%'";

using (var cn = new SqlConnection(" connection string here "))
using (var cmd = new SqlCommand(sql, cn))
{
   cmd.Parameters.Add("@Name", SqlDbTypes.NVarChar, 50).Value = temp;

   cn.Open();
   using (var rdr = cmd.ExecuteReader())
   {

       //do something with your data reader
   }
}

你是如何试图查询它的?从客户端代码?从存储过程中的T-SQL?使用PHP?您的代码提示c#/vb.net