解決在英文版MSSQL中插入中文亂碼的問題


英文版的MSSQL(據說還有Access,但是我沒用過)中直接在SQL語句中插入中文最終會顯示???

但是在中文版的管理器中插入中文卻沒有問題。

解決的方法很簡單,把類似於

insert into example values ('您好')

這樣的SQL語句全部改寫成

insert into example values (N'您好')

N表示Unicode,上面的語法僅為示例,具體怎么寫看自己習慣。

還有,如果數據庫的字段類型不是nchar或者nvarchar的話貌似也是不能插中文,請大家注意。

======================================================================================

修改數據庫編碼時遇到的:

 

ERROR:The database could not be exclusively locked to perform the operation

2012-03-18 13:29 by Wizardlsw, 95 閱讀, 0 評論, 收藏編輯

今天在導數據時遇到幾個問題,因為一個是英文操作系統,一個是中文操作系統,兩個默認的不一樣。我想現在就統一在數據庫級別將中文的那個Collation 從 Chinese_PRC_CI_AS 改為 SQL_Latin1_General_CP1_CI_AS(英文系統默認)。

但當我運行:

ALTER DATABASE QinBide COLLATE SQL_Latin1_General_CP1_CI_AS

報出錯誤如下:

Msg 5030, Level 16, State 2, Line 1 
The database could not be exclusively locked to perform the operation. 
Msg 5072, Level 16, State 1, Line 1 
ALTER DATABASE failed. The default collation of database 'XXXX' cannot be set to Chinese_PRC_CI_AS.

所在環境:

OS:  Windows 7 Professional English X64

DB: Sql Server 2008 R2

 

解決辦法:

ALTER DATABASE QinBide SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
go

ALTER DATABASE QinBide COLLATE SQL_Latin1_General_CP1_CI_AS

go

ALTER DATABASE QinBide SET MULTI_USER 
go 

 

引用:

http://www.cnblogs.com/psunny/archive/2010/09/28/1837835.html

http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SQL-Server-2005/Q_23422696.html

 

不過還有另外一個問題,對於原有的數據表字段,對應的Collation也是 Chinese_PRC_CI_AS,但我不知道如何統一一次性修改,由於表的數量不多,我暫時就直接進入各個表進行修改(下回請教公司DBA一下):

列屬性 –> Collation –> Restore Default

如下圖:

image

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM