注意:在SQL SERVER中使用NChar、NVarchar和NText_Mssql數據庫教程
推薦:SQL參數化查詢的另一個理由——命中執行計劃1概述 SQL語言的本質就是一串偽代碼,表達的是做什么,而不是怎么做的意思。如其它語言一樣,SQL語句需要編譯之后才能運行,所以每一條SQL是需要通過編譯器解釋才能運行的(在這之間還要做SQL的優化)。而這些步驟都是需要運行成本,所以在數據庫中有一個叫做執行計劃的
前天同事在幫客戶錄數據的時候,發現有一個人的名字里有個“㛃”(念jie,同“潔”)字,但用搜狗拼音和萬能五筆都打不出來,我百度了一下,找到了一篇搜狗論壇的建議帖,有人建議搜狗拼音里增加“
”字的輸入,下面跟帖的人貼出了這個“㛃”字。
既然字已經找到,我以為一切OK了,把它復制到飛秋里發給同事,竟然顯示的是“?”!這是一個神馬情況啊?
我立馬又去翻那個帖子,在下面看到了論壇版主的回復:

貌似是編碼的問題啊,我又把它復制到一個新建的記事本里,保存的時候果然出現了提示:

果然是編碼的問題啊!這時候,我突然想到,存放姓名的字段用的是varchar型,它能不能存這個字呢?一試,果然也是一個問號!改用nvarchar型字段來存,果斷是沒問題的。查了下SQL SERVER聯機叢書,看到varchar同nvarchar的區別:
除下列情況之外,nchar、nvarchar 和 ntext 的使用分別與 char、varchar 和 text 的使用相同:
Unicode 支持更大范圍的字符。
存儲 Unicode 字符需要更大的空間。
nchar 列的最大大小為 4,000 個字符,與 char 和 varchar 不同,它們為 8,000 個字符。
使用最大說明符,nvarchar 列的最大大小為 2^31-1 字節。有關 nvarchar(max) 的詳細信息,請參閱使用大值數據類型。
Unicode 常量以 N 開頭指定:N'A Unicode string'。
所有 Unicode 數據使用由 Unicode 標準定義的字符集。用于 Unicode 列的 Unicode 排序規則以下列屬性為基礎:區分大小寫、區分重音、區分假名、區分全半角和二進制。
SQL SERVER里建表,我一直用的都是varchar,總感覺nvarchar除了存儲中文的時候在長度和字符數上有統一性的好處之外,基本沒有什么需要用到的地方。這回得了教訓,以后再有錄入人名或是其他可能出現GBK不包含的生僻字的字段,最好還是使用nchar、nvarchar或ntext,以免在后面給程序留坑。
來源:http://www.cnblogs.com/aaa6032/archive/2012/08/12/2632063.html
分享:一列保存多個ID(將多個用逗號隔開的ID轉換成用逗號隔開的名稱)背景:在做項目時,經常會遇到這樣的表結構在主表的中有一列保存的是用逗號隔開ID。如,當一個員工從屬多個部門時、當一個項目從屬多個城市時、當一個設備從屬多個項目時,很多人都會在員工表中加入一個deptIds VARCHAR(1000)列(本文以員工從屬多個部門為例),用以保
- sql 語句練習與答案
- 深入C++ string.find()函數的用法總結
- SQL Server中刪除重復數據的幾個方法
- sql刪除重復數據的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數據庫,提示 無法為該請求檢索數據 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數的用法實例詳解
- 相關鏈接:
- 教程說明:
Mssql數據庫教程-注意:在SQL SERVER中使用NChar、NVarchar和NText
。