小编Jup*_*ter的帖子

SQL Server在运行查询之前更改了我的字符串

我尝试选择一些包含特殊字符的特殊记录,但SQL Server在运行查询之前更改了我的字符串字符.

例如:

    DECLARE @param NVARCHAR(30)

    SET @param=N'¤÷þ'--this is my special string that i want to be searched exactly.

    DECLARE @TSQL varchar(8000)
    SET @TSQL = 'SELECT * FROM MyTable WHERE MyFieldName LIKE %' + @param + '% '

    PRINT @TSQL

    --EXECUTE (@TSQL)
Run Code Online (Sandbox Code Playgroud)

但在结果(打印)中我看到:

SELECT * FROM MyTable WHERE MyFieldName LIKE '%¤÷þ?%'
Run Code Online (Sandbox Code Playgroud)

当您看到字符串的某些部分转换为(?)字符时,此问题会导致我的SELECT命令返回null值.

我尝试将运行查询的数据库的排序规则更改为:

SQL_Latin1_General_CP1_CI_AS
Run Code Online (Sandbox Code Playgroud)

它可以正常使用一些特殊的字符串,但它也不支持我的所有字符串.所以,问题在这里:我怎么能告诉SQL Server,请不要更改我的字符串ascii代码?是否有任何方式(或任何整理)说SQL Server完全按照现实的方式查看字符串?

PS:我正在使用SQL Server 2008 R2.

sql-server collation sql-server-2008-r2

5
推荐指数
1
解决办法
274
查看次数

标签 统计

collation ×1

sql-server ×1

sql-server-2008-r2 ×1