SQL SERVER中生僻字问题存储与查询问题

以下仅记录碰到的几个问题

1.首先字段设置为varchar的时候存储后无法进行正常的显示 显示为?

  此状态下匹配查询或者Like模糊查询都没问题

2.将字段设置为nvarchar,在进行插入或者跟新时入:insert into teset set membername=‘秦? ‘ 此时?字仍然只显示?, insert into teset set membername=N‘秦? ‘时可正常插入显示

  此状态下用匹配查询=可以正常查询到,当使用like模糊查询时 ?没有被识别到  like N‘%秦?%‘跟  like N‘%秦%‘查到的结果一样。

既要显示正确又要正确查询解决办法

select * from db_owner.systemMember where memberName like N‘%秦?%‘ collate  Chinese_PRC_BIN 使用强制定义字符集排序

后因为使用的时linq to sql查询,没法指定字符集排序。

后将单表内但单字段的字符集排序从Chinese_PRC_CI_AS改为了Chinese_PRC_BIN进行查询正确。(此处因为没有用到临时表或跨表的字段匹配查询,所以仅更改了单字段的字符集排序。如果涉及到跨表跨字段匹配或者临时表因统一调整为同一字符集排序)。

扩展字符集相关知识:

    解析:Chinese_PRC_BIN ;

      Chinese_PRC为简体中文UNICODE字符集

      _BIN 二进制排序 
      _CI(CS) 是否区分大小写,CI不区分,CS区分
      _AI(AS) 是否区分重音,AI不区分,AS区分   
      _KI(KS) 是否区分假名类型,KI不区分,KS区分 
        _WI(WS) 是否区分宽度 WI不区分,WS区分

原文地址:https://www.cnblogs.com/xuyufeng/p/11251657.html

时间: 2024-11-10 07:29:26

SQL SERVER中生僻字问题存储与查询问题的相关文章

SQL server中使用临时表存储数据

将查询出来的数据直接用“INTO #临时表名称”的方式完成临时表的创建及数据的插入 SELECT * INTO #temp_NowStatusFROM Test SELECT * FROM #temp_NowStatus --查询临时表中的数据truncate table #temp_NowStatus --清除临时表中的数据--删除临时表if object_id('tempdb..#temp_NowStatus') is not null BEGIN drop table #temp_NowS

SQL Server中的查询

      本博文简单介绍一下SQL Server中常用的几类查询及相关使用的方法.       一.ExecuteScalar方法获取单一值       ExecuteScalar方法是SqlCommand类的方法之一,执行查询,并返回查询所返回的结果集中的第一行第一列.        class Program { static void Main(string[] args) { string strCon = "Data Source=192.168.24.193;Initial Cat

SQL SERVER中XML查询:FOR XML指定PATH

SQL SERVER中XML查询:FOR XML指定PATH 前言 在SQL SERVER中,XML查询能够指定RAW,AUTO,EXPLICIT,PATH.本文用一些实例介绍SQL SERVER中指定PATH的XML查询. PATH參数 PATH('參数'),參数是用来重命名ROW的,ROW是默认生成的名称. select 'Hui' for xml path  结果:<row>Hui</row> select 'Hui' for xml path ('root') 结果:<

Microsoft SQL Server中条件字段是Nvarchar类型的,条件有中文的无法查询的原因及处理方法

条件中带的是中文无法查询出,因为字段sender_su_name是nvarchar类型的,需要前面接个N SELECT * FROM [test].[dbo].[Ship_User_Email]  WHERE [sender_su_name]=N'奖励' 为什么要带N如下解释: 使用 Unicode 数据 Unicode 标准为全球商业领域中广泛使用的大部分字符定义了一个单一编码方案.所有的计算机都用单一的 Unicode 标准 Unicode 数据中的位模式一致地翻译成字符.这保证了同一个位模

T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他

简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能.但索引可以在大多数情况下大大提升查询性能,在OLAP中尤其明显.要完全理解索引的概念,需要了解大量原理性的知识,包括B树,堆,数据库页,区,填充因子,碎片,文件组等等一系列相关知识,这些知识写一本小书也不为过.所以本文并不会深入讨论这些主题. 索引是什么 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息. 精简来说,索引是一种结构.

T-SQL查询进阶--SQL Server中的事务与锁

为什么需要锁 在任何多用户的数据库中,必须有一套用于数据修改的一致的规则,当两个不同的进程试图同时修改同一份数据时,数据库管理系统(DBMS)负责解决它们之间潜在的冲突.任何关系数据库必须支持事务的ACID属性,所以在开始了解锁之前,首先简单了解一下数据库事务和事务的ACID属性. 原子性(Atomicity):原子性意味着数据库中的事务执行是作为原子.即不可在分,整个语句要么执行,要么不执行 一致性(Consistency):在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏.(唯一约

在SQL Server中为什么不建议使用Not In子查询

原文:在SQL Server中为什么不建议使用Not In子查询     在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题: 结果不准确 查询性能低下       下面我们来看一下为什么尽量不使用Not In子句.   结果不准确问题     在SQL Server中,Null值并不是一个值,而是表示特定含义,其所表示的含义是"Unknow",可以理解为未定义或者未知,因此任何与Null值

[转] C#实现在Sql Server中存储和读取Word文件

出处 C#实现在Sql Server中存储和读取Word文件 要实现在Sql Server中实现将文件读写Word文件,需要在要存取的表中添加Image类型的列,示例表结构为: CREATE TABLE CONTRACTS ( ID VARCHAR (50), CONTRACT_FILE IMAGE ); 要将Word文件存储到数据库的CONTRACT_FILE字段中,需要将文件转换为byte数组,具体代码如下: /// 将文件转换为byte数组 /// <summary> /// 将文件转换

在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题

原文:在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\KK.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 问题: 消息 15281,级别 16,状态 1,第 1 行 SQL Server 阻止了对组件 'Ad Hoc Di