英文版的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
如下圖:

