SQL Server插入中文数据后出现乱码

原文:SQL Server插入中文数据后出现乱码

今天在做项目的过程中遇到如标题的问题,情况如下图:

数据库使用的是SQL Server2012版本,创建表的脚本如下:

CREATE TABLE [dbo].[Type]
(
  [TypeId] INT NOT NULL PRIMARY KEY,
    [TypeName] NVARCHAR(50)NOT NULL,
    [Description] NVARCHAR(255) NULL,
    [CategoryId] INT NOT NULL DEFAULT 0
)

根据一些相关文档提到的解决方案,需要包含中文数据的字段,一般定义为nchar/nvarchar数据类型。但实际应用中,即使这样定义了数据库表字段,也会产生乱码。此时尝试了另一种解决方案:即添加中文数据时, 在插入的中文字符前添加大写字母N,脚本示例如下:

MERGE dbo.[Type] AS Target
USING (
  SELECT 0, N'其它', N'未定义消费类别', 0
  UNION
  SELECT 1, N'主食', N'米、面、油、盐等', 1
  UNION
  SELECT 2, N'副食', N'肉、菜、蛋、熟食等' , 1
  UNION
  SELECT 3, N'餐饮', N'含堂食外送', 1
  UNION
  SELECT 4, N'饮料', '', 2

经过验证,应用此方案可以解决中文乱码问题。

 

时间: 2024-12-03 01:14:34

SQL Server插入中文数据后出现乱码的相关文章

SQL Server插入中文数据出现乱码问题

转自http://www.cnblogs.com/yichengbo/archive/2011/08/12/2135892.html 创建数据库的代码---创建promary表  create table promary  (  proID int primary key,  proName varchar(50) not null  ) 出现上图所示内容是因为proName varchar(50) not null这个地方有问题.一般来说,如果含有中文字符,用nchar/nvarchar,如果

急救:jsp向mysql数据库中插入中文数据时是乱码

问题描述 mysql当初安装的时候采用的编码是utf-8我建立的数据库编码是gbk_chinese_ciJSP文件:<%@pagelanguage="java"contentType="text/html;charset=GBK"%><html><head><title>编码问题</title><metahttp-equiv="Content-Type"content="

在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案[转]

在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案 病症表现为:主要表现为用T-sql语句插入中文数据时数据库显示全是问号"???" 解决办法: 第一种办法:先选中出错的数据库→选中以后右键点击属性会弹出数据库属性 对话框→选中数据库属性对话框中的选项→把选项中的排序规则设置成:Chinese_PRC_90_CI_AS→最后点击确定即可.(注意:在选择数据库属性的时候必须确保你所修改的数据库未被使用才可以修改否则会失败的) 第二种办法:首先打开你的sql查询分析器

RDS SQL SERVER 解决中文乱码问题

问题引入 这天老鸟又开始纠缠着菜鸟:"菜鸟啊,我们最近遇到一个RDS SQL Server 2008 R2的奇怪的问题,我们的生僻字写入到RDS SQL Server中,查询结果展示出来是乱码呀?你去解决下这个问题吧.". "可是,鸟哥,我最近在做关于SQLTest的系列文章啊,暂时抽不出......". "那个暂时先放放,这个比较紧急,尽快,立刻,马上去复盘并解决掉,Understand?".还没等菜鸟说完,老鸟已经迫不及待的发号施令了. 复盘

直接获取Access、SQL Server等数据库数据

access|server|数据|数据库 直接获取access.SQL Server等数据库数据Author: MixPST,Ph4nt0m Security Teamhttp://www.ph4nt0m.org 当使用SQL注入access的时候,经常会遇到密码为中文.猜不到关键字段名这样的问题.使用本技术就能够很快速的解决这样的问题.本技术最低要求有两条: 1.使用access数据库的系统存在SQL注入漏洞:mssql数据库也支持这个技术2.需要知道欲爆数据所在的表的表名以及这个表下的一个字

01. SQL Server 如何读写数据

原文:01. SQL Server 如何读写数据 一. 数据读写流程简要SQL Server作为一个关系型数据库,自然也维持了事务的ACID特性,数据库的读写冲突由事务隔离级别控制.无论有没有显示开启事务,事务都是存在的.流程图如下: 数据读写流程图 0. 事务开始(1) 所有DML语句必然是基于事务的,如果没有显式开启事务,即手动写下BEGIN TRAN,SQL Server则把每条语句作为一个事务,并自动提交事务. 也就是说SQL SERVER 默认不开启隐式事务,这点与ORACLE正好相反

探讨SQL Server并发处理队列数据不阻塞解决方案

前言 之前对于并发这一块确实接触的比较少,自从遇到现在的老大,每写完一块老大都会过目一下然后给出意见,期间确实收获不少,接下来有几篇会来讲解SQL Server中关于并发这一块的内容,有的是总结,有的是学习,若有错误见解请批评性指出. SQL Server并发处理队列数据问题 在我们的项目中对于购买产品的用户会对应分配卡密,同时会更新其卡密的状态为已使用,所以当出现并发时此时我们不加以控制会导致同一个卡号和密码被不同的用户所使用,这样的情况是不能允许的,此时我们迫切需要解决对卡密使用后的更新和产

SQL Server .NET Framework 数据提供程序连接池

server|程序|数据 有朋友建议我控制连接池的连接,说是为了提高性能,但看了下面的这个文章,感觉连接池是由系统自身进行维护的,程序没有必要去进行控制的.大家有什么意见吗?在连接问题上,是否有提高性能的方法? SQL Server .NET Framework 数据提供程序连接池池连接可以显著提高应用程序的性能和可缩放性.SQL Server .NET Framework 数据提供程序自动为 ADO.NET 客户端应用程序提供连接池.您也可以提供几个连接字符串修饰符来控制连接池行为,请参见本主

如何在SQL Server中恢复数据

server|恢复|数据 在SQL server 中恢复数据的几种办法: 1.自然就是 backup 的 恢复方法 backup 这种方法是最安全,最可靠的方法操作起来也很简单,只要在 sql server 的 enterprise manager中选择 restore 就可以了. 用T-SQL 也可以完成: RESTORE DATABASE test FROM DISK = 'c:\mssql7\backup\test.bak' 当然这是用的 文件恢复,如果是 设备恢复 自然也是可以的. 2.