insert into DW_Web.dbo.dimRegion(City_ID,City_Name,Province_Name,Sales_Area,Region_Name)select City_ID,City_Name,Province_Name,Sales_Area,Region_Name
from ETL_Web.dbo.Sys_Regionselect * from dimRegion ---汉字乱码
select City_ID,City_Name,Province_Name,Sales_Area,Region_Name
into dbo.aaaa
from ETL_Web.dbo.Sys_Regionselect City_ID,City_Name,Province_Name,Sales_Area,Region_Name
from aaaa ----正常显示insert into DW_Web.dbo.dimRegion(City_ID,City_Name,Province_Name,Sales_Area,Region_Name)select City_ID,City_Name,Province_Name,Sales_Area,Region_Name
from aaaa
select * from dimRegion ---还是汉字乱码问题描述:我从 ETL_Web.dbo.Sys_Region 抽取数据加载到 DW_Web.dbo.dimRegion 就是乱码
如果采用 select * into from 方式加载,就正常
请问这是为什么?
这也太麻烦了
nvarchar 和 varchar 的区别是存储方式不同 varchar是按字节存储的.而带 "n "的nvarchar是按字符存储的比如说 varchar(40),能存储40个字节长度的字符,存储中文字符的时候,因为中文字符1个字符就等于2个字节.所以varchar(40)只能存储20个中文字符. nvarchar(40),就可以存储40个中文字符,也就是说可以存储80个字节长度的字符.nvarchar要相对于存储的字符类型.比如有些字符是占3个字节的. 字符集是在安装 SQL Server 时选择的,不能更改。使用 Unicode 数据类型,列可存储由 Unicode 标准定义的任何字符,包含由不同字符集定义的所有字符。Unicode 数据类型需要相当于非 Unicode 数据类型两倍的存储空间。 Unicode 数据使用 SQL Server 中的 nchar、varchar 和 ntext 数据类型进行存储。对于存储来源于多种字符集的字符的列,可采用这些数据类型。当列中各项所包含的 Unicode 字符数不同时(至多为 4000),使用 nvarchar 类型。当列中各项为同一固定长度时(至多为 4000 个 Unicode 字符),使用 nchar 类型。当列中任意项超过 4000 个 Unicode字符时,使用 ntext 类型。nvarchar 和 varchar 的区别是存储方式不同
varchar是按字节存储的.而带 "n "的nvarchar是按字符存储的
比如说 varchar(40),能存储40个字节长度的字符,存储中文字符的时候,因为中文字符1个字符就等于2个字节.所以varchar(40)只能存储20个中文字符.
nvarchar(40),就可以存储40个中文字符,也就是说可以存储80个字节长度的字符.nvarchar要相对于存储的字符类型.比如有些字符是占3个字节的.
或者建库的时候就指定中文字符
要不改一下数据库,表的字符集.改为chinese_prc