当前位置:首页 » 编程语言 » sqlserver2005字符集
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqlserver2005字符集

发布时间: 2023-01-30 15:22:49

Ⅰ 如何改变sql server 2005数据库的编码方式为gbk形式

具体:
1.sp_helpsort
SELECT SERVERPROPERTY ('Collation')
查看排序规则.
应该字符集关.

2.更改服务器排序规则
更改 SQL Server 2005 实例默认排序规则操作能比较复杂包括步骤:

确保具重新创建用户数据库及些数据库所象所需全部信息或脚本
使用工具(例容量复制)导所数据
删除所用户数据库
重新 setup 命令 SQLCOLLATION 属性指定新排序规则 master 数据库例:
复制代码
start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=SQL_Latin1_General_CP1_CI_AI
关重新 master 数据库详细信息请参阅何重新 SQL Server 2005 Master 数据库
创建所数据库及些数据库所象
导入所数据
注意:
创建每新数据库指定默认排序规则更改 SQL Server 2005 实例默认排序规则

3.设置更改数据库排序规则
创建新数据库使用列内容指定排序规则:
CREATE DATABASE 语句 COLLATE 句
SQL Server Management Studio.
SQL 管理象 (SMO) Database.Collation 属性
未指定排序规则则使用服务器排序规则
使用 ALTER DATABASE 语句 COLLATE 句更改用户数据库创建任何新象排序规则使用语句能更改任何现用户定义表列排序规则使用 ALTER TABLE COLLATE 句更改些列排序规则
更改数据库排序规则需要更改列内容:
数据库默认排序规则新默认排序规则应用于数据库续创建所列、用户定义数据类型、变量参数根据数据库定义象解析 SQL 语句指定象标识符使用新默认排序规则
系统表任何 char、varchar、text、nchar、nvarchar 或 ntext 列更改使用新排序规则
存储程用户定义函数所现 char、varchar、text、nchar、nvarchar 或 ntext 参数标量返值更改使用新排序规则
char、varchar、text、nchar、nvarchar 或 ntext 系统数据类型基于些系统数据类型所用户定义数据类型更改使用新默认排序规则

SQL code :

1.数据库字符集修改:
alter database dbname collate Chinese_PRC_CI_AS

2.

--1. 数据库指定排序规则
CREATE DATABASE db COLLATE Chinese_PRC_CI_AS
GO

ALTER DATABASE db COLLATE Chinese_PRC_BIN
GO

/*====================================*/

--2. 表列指定排序规则
CREATE TABLE tb(
col1 varchar(10),
col2 varchar(10) COLLATE Chinese_PRC_CI_AS)
GO

ALTER TABLE tb ADD col3 varchar(10) COLLATE Chinese_PRC_BIN
GO

ALTER TABLE tb ALTER COLUMN col2 varchar(10) COLLATE Chinese_PRC_BIN
GO

/*====================================*/

--3. 字符变量参数应用排序规则
DECLARE @a varchar(10),@b varchar(10)
SELECT @a='a',@b='A'

--使用排序规则 Chinese_PRC_CI_AS
SELECT CASE WHEN @a COLLATE Chinese_PRC_CI_AS = @b THEN '@a=@b' ELSE '@a <>@b' END
--结:@a=@b

--使用排序规则 Chinese_PRC_BIN
SELECT CASE WHEN @a COLLATE Chinese_PRC_BIN = @b THEN '@a=@b' ELSE '@a <>@b' END
--结:@a <>@b

3.

ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
--区写
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--区写
数据库
ALTER DATABASE database
COLLATE Chinese_PRC_CS_AS
--区写

ALTER DATABASE database COLLATE Chinese_PRC_CI_AS --区写

.安装SQL选择区写
或安装完重建mastar选择区
C:/Program Files/Microsoft SQL Server/80/Tools/Binn/rebuildm.exe

二.sql server 8.0版本才7.0及其支持
alter database 数据库 COLLATE Chinese_PRC_CS_AS
修改排序规则改写敏排序规则
修改表用alter table语句
修改库默认排序规则用alter datebase语句
修改整服务器默认排序规则用Rebuildm.exe重建master库
--指定排序规则

--示例
select replace('AbacB' collate Chinese_PRC_CS_AS_WS,'B','test')

--要求表支持,则建表指定排序规则,replace用写排序规则

--示例
create table tb(a varchar(20) collate Chinese_PRC_CS_AS_WS)
insert tb values('Abac')

select replace(a,'a','test') from tb

drop table tb

指定排序规则即

Windows 排序规则名称
COLLATE 句指定 Windows 排序规则名称Windows 排序规则名称由排序规则指示器比较风格构


< Windows_collation_name > :: =

CollationDesignator_ <ComparisonStyle>

< ComparisonStyle > ::=
CaseSensitivity_AccentSensitivity
[_KanatypeSensitive [_WidthSensitive ] ]
| _BIN

参数
CollationDesignator

指定 Windows 排序规则使用基本排序规则基本排序规则包括:

指定按字典排序应用其排序规则字母表或语言

用于存储非 Unicode 字符数据代码页
例 Latin1_General 或文两者都使用代码页 1252或土耳其文使用代码页 1254

CaseSensitivity

CI 指定区写CS 指定区写

AccentSensitivity

AI 指定区重音AS 指定区重音

KanatypeSensitive

Omitted 指定区写KS 指定区假名类型

WidthSensitivity

Omitted 指定区写WS 指定区写

BIN

指定使用二进制排序序

目前查询区要改免反悔查询:
select * from a
/*
a_nam a_add
---------- ----------
1 aa
1 bb
2 cc
2 vv
2 kk
3 dd
3 ee
4 dd
5 ee
6 yy
6 yy

(11 row(s) affected)
*/
现我查询a_add = 'aa''Aa'等等行
Example 1:

select * from a
where a_add collate Chinese_PRC_CS_AS_WS = 'aa'
/*
a_nam a_add
---------- ----------
1 aa

(1 row(s) affected)
*/

Example 2:

select * from a
where a_add collate Chinese_PRC_CS_AS_WS = 'Aa'
/*
a_nam a_add
---------- ----------

(0 row(s) affected)
*/

三.面记住用笨转化ascii
select * from a
where
ascii(substring(a_add,1,1)) = ascii(substring('Aa',1,1))
and
ascii(substring(a_add,2,1)) = ascii(substring('Aa',2,1))
/*
a_nam a_add
---------- ----------

(0 row(s) affected)
*/

三:任何版本都
select * from a
where cast(a_add as varbinary(10))= cast('aa' as varbinary(10))

Ⅱ SqlServer2005数据库 韩文信息保存出现乱码怎么解决求救!!!

安装SQLSERVER2005的时候选择相应字符集,我不熟韩文的,应该用UTF8可以的。

Ⅲ sql server2005远程连接oracle11g查询结果中文乱码,怎么解决

远程连接oracle11g查询结果中文乱码是客户端和服务端编码设置不同引起的。
1、检查windows7下面cmd里面sqlplus中oracle
server端的字符集。
打开cmd,用sqlplus登录,输入下面SQL查询服务端的字符集。
2、去后台linux查看字符集编码,
(1),查看profile文件
[oracle@powerlong4
~]$
vim/home/oracle/.bash_profile
export
LANG=en_US.gbk
export
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
(2),查看数据库的userenv
SQL>
select
userenv('language')
fromal;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
改成ZHS16GBK就不会有中文乱码了。

Ⅳ 如何SQL Server 2005 设置字符集为UTF-8

如何SQL Server 2005 设置字符集为UTF-8

1.sp_helpsort
SELECT SERVERPROPERTY ('Collation')
查看你的排序规则.
不过你的这个应该和字符集有关.

2.更改服务器排序规则
更改 SQL Server 2005 实例的默认排序规则的操作可能会比较复杂,包括以下步骤:

确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本。
使用工具(例如大容量复制)导出所有数据。
删除所有用户数据库。
重新生成在 setup 命令的 SQLCOLLATION 属性中指定新的排序规则的 master 数据库。例如:
复制代码
start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=SQL_Latin1_General_CP1_CI_AI
有关重新生成 master 数据库的详细信息,请参阅如何重新生成 SQL Server 2005 的 Master 数据库。
创建所有数据库及这些数据库中的所有对象。
导入所有数据。
注意:
可以为创建的每个新数据库指定默认排序规则,而不更改 SQL Server 2005 实例的默认排序规则。

Ⅳ SQL Server的常用数据类型(字符型)有哪些

对于程序中的string型字段,SQLServer中有char、varchar、nchar、nvarchar四种类型来对应(暂时不考虑text和ntext),开建立数据库中,对这四种类型往往比较模糊,这里做一下对比。 x0dx0ax0dx0a定长或变长x0dx0a所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;有var前缀的,表示是实际存储空间是变长的,比如varchar,nvarchar变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长。 x0dx0aUnicode或非Unicodex0dx0a数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储。如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。而前缀n就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。 x0dx0a基于以上两点来看看字段容量x0dx0achar,varchar 最多8000个英文,4000个汉字 x0dx0anchar,nvarchar 可存储4000个字符,无论英文还是汉字 x0dx0ax0dx0a使用(个人偏好) x0dx0a如果数据量非常大,又能100%确定长度且保存只是ansi字符,那么char x0dx0a能确定长度又不一定是ansi字符或者,那么用nchar; x0dx0a对于超大数据,如文章内容,使用nText x0dx0a其他的通用nvarchar x0dx0achar、varchar、nchar、nvarchar特点比较x0dx0aCHARx0dx0aCHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。 x0dx0aVARCHARx0dx0a存储变长数据,但存储效率没有CHAR高,如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么"+1"呢?这一个字节用于保存实际使用了多大的长度。 x0dx0a从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。 x0dx0aTEXTx0dx0atext存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。 x0dx0aNCHAR、NVARCHAR、NTEXTx0dx0a这三种从名字上看比前面三种多了个"N"。和char、varchar比较起来,nchar、nvarchar最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。 x0dx0a所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar

Ⅵ SQL2005 怎样才能支持GBK18030字符集

右键数据库名->属性->选项->字符排序 ,貌似没有GBK18030
你可以这么解决下:

Ⅶ 如何查找sqlserver2005 备份文件的字符集

消灭零回复

Ⅷ sql server2005 远程mysql 插入数据时 中文全是乱码 mysql的字符集是utf8

那你在sql 2005 修改 字符集排序规则,修改成mysql一样 ,不过最好是 在查询中 临时修改,永久修改sql 2005的字符集排序规则 会引起 搜索结果 的不同