日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SQL Server數據庫簡體繁體數據混用的問題

瀏覽:180日期:2023-11-06 09:05:11

這篇論壇文章著重介紹了SQL Server數據庫簡體繁體數據混用的問題,詳細內容請參考下文:

我現在要說的是一個在簡體繁體數據混用的時候很容易發生的問題,但是這個問題也很容易被大家忽略。具體來說,這個問題會在所有采用不同排序規則的數據實例間關聯數據的時候發生。也許我這么說大家還是弄不清楚到底是怎么回事兒,我先來講一下我今天碰到的問題。

公司里面使用的數據庫會有簡體中文和繁體中文兩種版本。我現在這個專案使用的SQLServer是繁體中文版的,但是需要使用到另一個使用簡體中文版SQLServer專案的數據,我按照通常的做法把簡體中文版SQLServer中的一個數據表導入到現在使用的繁體中文版SQLServer中,結構和數據都導入成功了。我一開始并沒有意識到這樣做會有什么問題。接下來我開始調試SQL語句,其實是一個很簡單的兩表關聯數據選擇大致如下:

select table1.*,table2.*

from table1

inner join table2 on table2.FK = table1.PK

照理說這么簡單的語句沒道理會出什么問題,不過在查詢分析器里面始終提示如下的錯誤

服務器: 消息 446,級別 16,狀態 9,行 1

無法解析 equal to 動作的定序衝突。

后來搜索了一下,然后又看了一下T-SQL的幫助,才知道原來是因為我將簡體中文SQL Server中的數據表導入到繁體中文的數據表中的是后,連同原數據的排序方式一并導入,導致了簡體數據表的排序方式依然是簡體,所以無法進行比較,從而出錯。解決的辦法是指名排序方式,告訴查詢分析器應該怎樣排序即可。這里會需要用到一個關鍵字 COLLATE Coliate 在SQLServer聯機叢書中是這樣解釋的:

COLLATE

一個子句,可應用于數據庫定義或列定義以定義排序規則,或應用于字符串表達式以應用排序規則投影。

語法:

COLLATE < collation_name >

< collation_name > ::=

{ Windows_collation_name } | { SQL_collation_name }

參數

collation_name

是應用于表達式、列定義或數據庫定義的排序規則的名稱。collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name。

Windows_collation_name

是Windows 排序規則的排序規則名稱。請參見Windows排序規則名稱。

SQL_collation_name

是 SQL 排序規則的排序規則名稱。請參見 SQL 排序規則名稱。

那么我們怎么可以知道當前的排序規則名稱是什么呢,其實這個排序規則名稱是我們在創建數據庫(實例)的時候就可以進行選擇的,不過通常情況下我們都會默認原來的設定,不會對其進行變更,所以如果是簡體中文的SQLServer就會默認的使用簡體中文的排序規則,而如果是繁體中文的SQLServer就會默認的使用繁體中文的排序規則。我們在察看數據庫(實例)的屬性時,常規頁簽的最下面一行就是當前的排序規則。在默認的情況下,簡體中文的排序規則名稱是:Chinese_PRC_CI_AS,而繁體中文的排序規則名稱則是:Chinese_Taiwan_Stroke_CI_AS,所以我們如果在有簡體繁體排序規則名稱混用的時候,只要聲明一下你當前要使用哪種排序規則進行比較就可以了,例如針對上面的那個SQL語句,下面兩種方法都可以解決那個錯誤提示的問題

SELECT Table1.*,Table2.*

FROM Table1

INNER JOIN Table2 ON Table2.FK = Table1.PK COLLATE Chinese_PRC_CI_AS

SELECT Table1.*,Table2.*

FROM Table1

INNER JOIN Table2 ON Table2.FK = Table1.PK COLLATE Chinese_Taiwan_Stroke_CI_AS

說了半天如何解決排序規則沖突引起的問題,如果還有興趣的話,下面把SQL Server聯機叢書里面關于排序規則的概念貼出來給大家分享一下,省得大家再去找:

Microsoft® SQL Server™ 2000 支持多種排序規則。排序規則對控制正確使用語言(如馬其頓語或波蘭語)或字母表(如西歐語言使用的拉丁字母表 Latin1_General)字符的規則進行編碼。

每個 SQL Server 排序規則指定三個屬性:

用于 Unicode 數據類型(nchar、nvarchar 和 ntext)的排序次序。排序次序定義字符的排序序列,以及在比較操作中對字符取值的方法。

用于非 Unicode 字符數據類型(char、varchar 和 text)的排序次序。

用于存儲非 Unicode 字符數據的代碼頁。

說明 不能指定與 Unicode 數據類型(nchar、nvarchar 和 ntext)對應的代碼頁。用于 Unicode 字符的雙字節位模式由 Unicode 標準定義且不能更改。

可在任何級別上指定 SQL Server 2000 排序規則。安裝 SQL Server 2000 實例時,可指定該實例的默認排序規則。每次創建數據庫時,可指定用于該數據庫的默認排序規則。如果未指定排序規則,數據庫的默認排序規則即是實例的默認排序規則。無論何時定義字符列、變量或參數,都可指定這些對象的排序規則。如果未指定排序規則,將使用數據庫的默認排序規則創建這些對象。

如果 SQL Server 實例的所有用戶都使用同一種語言,則應選擇支持該語言的排序規則。例如,若所有用戶都講法語,則選擇法語排序規則。

如果 SQL Server 實例的用戶使用多種語言,則應選擇能對多語種需求提供最佳支持的排序規則。例如,如果用戶一般都講西歐語言,則選擇 Latin1_General 排序規則。當支持使用多種語言的用戶時,對所有字符數據都使用 Unicode 數據類型 nchar、nvarchar 和 ntext 最為重要。Unicode 旨在消除非 Unicode char、varchar 和 text 數據類型的代碼頁轉換困難。因為排序規則定義用于比較操作的排序次序和 Unicode 字符的排序,所以當用 Unicode 數據類型實現所有的列時,排序規則仍會產生不同。即使當使用 Unicode 數據類型存儲字符數據時,也應選擇支持大多數用戶的排序規則,以防使用非 Unicode 數據類型實現列或變量。

SQL Server 排序規則定義數據庫引擎存儲和操作字符及 Unicode 數據的方式。然而,當數據移入應用程序后,在應用程序中進行的字符排序和比較將由計算機上選定的 Windows 區域設置控制。應用程序使用的字符數據排序規則是由 Windows 區域設置控制的項目之一,區域設置還定義其它項目,如數字、時間、日期和貨幣格式。對于 Microsoft Windows NT® 4.0、Microsoft Windows® 98 和 Microsoft Windows 95,可使用控制面板中的'區域設置'應用程序指定 Windows 區域設置。對于 Microsoft Windows 2000,可使用'控制面板'中的'區域選項'應用程序指定區域設置。有關 Windows 區域設置的更多信息,請參見 Microsoft Web 站點 MSDN® 頁中的 Developing International Software for Windows 95 and Windows NT 4.0。

多個排序規則可對非 Unicode 數據使用相同的代碼頁。例如,代碼頁 1251 定義西里爾語字符集。多個排序規則(如 Cyrillic_General、Ukrainian 和 Macedonian)都使用該代碼頁。雖然這些排序規則都使用相同的位集來表示非 Unicode 字符數據,但在處理字典定義時所應用的排序和比較規則略有不同,而字典定義確定語言或字母表中與排序規則相關的正確字符序列。

因為SQL Server 2000排序規則控制 Unicode 和非 Unicode 排序次序,所以不會遇到由為 Unicode 和非 Unicode 數據指定不同的排序規則而引起的問題。在 SQL Server 的早期版本中,對代碼頁號、字符排序次序和 Unicode 排序規則分別進行指定。SQL Server 的早期版本還支持每個代碼頁有不同數目的排序次序,并為某些代碼頁提供 Windows 區域設置中沒有的排序次序。在 SQL Server 7.0 中,還可以指定為非 Unicode 數據選擇的排序次序以外的其它 Unicode 排序次序。這會導致在使用與非 Unicode 數據相對的 Unicode 數據時,排序和比較操作返回不同的結果。

標簽: Sql Server 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲日本在线观看视频| 精品免费av在线| 黄色亚洲精品| 欧美69视频| 99pao成人国产永久免费视频 | 日韩免费福利视频| 国产91在线精品| 日本精品另类| 久久久国产精品网站| 天堂√中文最新版在线| 麻豆极品一区二区三区| 久久精品国产亚洲一区二区三区| 美女性感视频久久| 国产精品一区二区中文字幕| 精品国产午夜肉伦伦影院| 欧美激情麻豆| 欧美日韩精品免费观看视欧美高清免费大片 | 精品91久久久久| 欧美三区四区| 91日韩欧美| 欧美午夜不卡影院在线观看完整版免费| 婷婷激情综合| 日韩黄色在线观看| 91精品在线免费视频| 麻豆91精品视频| 国产在线欧美| 在线亚洲精品| 国产精品亚洲二区| 久久中文字幕二区| 久久性天堂网| 欧美日韩1区2区3区| 国产精品qvod| 伊人成人网在线看| 蜜桃一区二区三区在线观看| 日韩一区网站| 国产一区日韩| 蜜臀av在线播放一区二区三区| 国产欧美日韩免费观看| 亚洲精品.com| 久久黄色影视| 久久九九精品| 欧美日韩一区二区三区不卡视频 | 亚洲精品88| 99久久精品网| 国产精品普通话对白| 国产探花在线精品| 91视频一区| 亚洲永久字幕| 国产一区二区三区网| 久久中文视频| 老色鬼久久亚洲一区二区| 麻豆国产精品| 一级欧洲+日本+国产| 国产日韩视频在线| 欧美va天堂在线| 国产亚洲一区| 亚洲午夜黄色| 久久精品国产网站| 黑丝一区二区三区| 亚洲一区二区小说| 日韩精品导航| 桃色一区二区| 国产精品久久久免费| 欧美日韩国产欧| 久久精品人人| 日韩av一区二| 欧美日韩水蜜桃| 美女国产精品久久久| 蜜臀久久久99精品久久久久久| 精品国产一区二区三区av片| 中文不卡在线| 午夜精品网站| 久久精品九色| 国产伦精品一区二区三区视频 | 欧美日韩1区| 99久久99视频只有精品| 日韩一区二区三区免费播放| 偷拍亚洲精品| 午夜免费一区| 日韩av免费| 国产精品分类| 青草综合视频| 亚洲精品欧洲| 九九久久电影| 日韩在线第七页| 国产精品成人一区二区不卡| 亚洲bt欧美bt精品777| 亚洲一区黄色| 天堂中文av在线资源库| 久久国产精品免费精品3p| 奇米狠狠一区二区三区| 黄色亚洲大片免费在线观看| 国产精品久久久久av电视剧| a天堂资源在线| 国产精品夜夜夜| 婷婷精品在线观看| 先锋亚洲精品| 激情久久婷婷| 99国产精品免费视频观看| 国产夫妻在线| 精品国产精品国产偷麻豆| 免费在线成人| 欧美精品影院| 久久国产精品亚洲77777| 亚洲精品va| 国户精品久久久久久久久久久不卡| 精品免费av一区二区三区| 国产精品99视频| 欧美精品国产| 国产日韩欧美在线播放不卡| 国产精品午夜av| 国产日韩精品视频一区二区三区| 欧美一区二区三区免费看| 日本不卡在线视频| 伊人久久一区| 亚洲免费福利一区| 国产日韩中文在线中文字幕| 日韩高清不卡一区| 另类激情亚洲| 日韩精品欧美精品| 亚洲精品进入| 久久精品五月| 久久青青视频| 亚洲第一精品影视| 老司机精品久久| 亚洲精品一级二级三级| 五月激激激综合网色播| 国产精品66| 精品国产一级| 国产一区二区三区自拍| 日韩视频在线一区二区三区| 亚洲一区网站| 久久香蕉网站| 久久精品国产精品亚洲毛片| 国产一区二区三区不卡av| 婷婷综合六月| 欧美精品黄色| 国产乱码精品一区二区三区四区 | 免费日本视频一区| 国产精品自在| 中文字幕在线高清| 欧美日韩国产亚洲一区| 日韩1区2区3区| 日韩在线观看中文字幕| 国产精品亚洲欧美日韩一区在线| 日韩大片在线观看| 欧美亚洲激情| 日本中文字幕一区二区视频| 国产一区二区三区不卡视频网站 | 欧美一区不卡| 国产黄色精品| 久久亚洲专区| 热久久国产精品| 亚洲综合精品| 成人在线视频中文字幕| 欧美日韩在线网站| 国产日本久久| 美女网站视频一区| 亚洲人成网77777色在线播放 | 日韩高清二区| 中文字幕人成乱码在线观看| 日本亚洲欧洲无免费码在线| 国产精品.xx视频.xxtv| 精品少妇一区| 午夜在线精品偷拍| 国产欧美一级| 欧美亚洲在线日韩| 欧美日韩xxxx| 99久久夜色精品国产亚洲狼| 亚洲精品在线二区| 日韩在线第七页| 亚洲欧美久久精品| 不卡中文一二三区| 人人爱人人干婷婷丁香亚洲| 欧美sss在线视频| 久久99偷拍| 国产精品毛片一区二区三区| 麻豆精品视频在线观看免费| 免费av一区二区三区四区| 亚洲精品在线国产| 亚洲一级影院| 狠狠久久伊人中文字幕| 亚洲在线久久| 一区福利视频| 国内精品伊人| 久久精品免费看| 日韩av不卡一区二区| 欧美午夜不卡| 亚洲手机在线| 红杏一区二区三区| 国产乱码精品一区二区三区四区| 国产农村妇女精品一二区| 国产一区国产二区国产三区| 日韩在线网址| 激情欧美丁香| 97人人精品| 久久精品国产免费| 日本不卡在线视频| 99pao成人国产永久免费视频 | 国产成人精品一区二区三区在线|