SQL SERVER 2008 如何将字符集更改为UTF-8

SQL SERVER 2008 如何将字符集更改为UTF-8,第1张

1.直接打开SQLSERVER2008的相关窗口,会看到字符集为ISO-8859-5,如下图。

2.如果下一步是好的,继续并点击首选项跳转到窗口。

3.这时,一个新的对话框d出。您需要选择编码为utf-8并确认更改。

4.通过这种方式,当找到图的结果时,就可以达到目的。

1、查询SQL中的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 执行之后,就可以看到数据库中所有属于自己建的表的名称 2、查询SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties')) 3、在Sql查询分析器,还有一个简单的查询方法: EXEC sp_MSforeachtable @command1="sp_spaceused '?'" 执行完之后,就可以看到数据库中所有用户表的信息 4、查询总存储过程数:select count(*) 总存储过程数 from sysobjects where xtype='p' 附:xtype类型D = 默认值或 DEFAULT 约束

F = FOREIGN KEY 约束L = 日志FN = 标量函数

IF = 内嵌表函数

P = 存储过程

PK = PRIMARY KEY 约束(类型是 K)

RF = 复制筛选存储过程S = 系统表TF = 表函数

TR = 触发器U = 用户表UQ = UNIQUE 约束(类型是 K)V = 视图X = 扩展存储过程 另:在sqlserver中取得某个数据库中所有表名的sql语句 select sysobjects.name from sysobjects.xtype ='U'SELECT name

WHERE (xtype = 'U') 在数据库的sysobjects表里有这个数据库全部表的信息, xtype值为'U'的就是表名 注意:一般通过上述方法获得全部用户表示都会有一个dtproperties表,SQLSERVER 默认它也是用户表,想要从用户表中排出,需要加上限定条件 status>0,即:select * from sysobjects where xtype='U' and status>0

具体:

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))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8048693.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存