Ⅰ 如何改變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的字元集排序規則 會引起 搜索結果 的不同