91在线一级黄片|91视频在线观看18|成人夜间呦呦网站|91资源欧美日韩超碰|久久最新免费精品视频一区二区三区|国产探花视频在线观看|黄片真人免费三级片毛片|国产人无码视频在线|精品成人影视无码三区|久久视频爱久久免费精品

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServer數(shù)據(jù)庫之“混合排序規(guī)則環(huán)境”的描述

此文章主要講述的是SQL Server數(shù)據(jù)庫之 “混合排序規(guī)則環(huán)境”,在實際操作中你是否遇到過混合排序規(guī)則環(huán)境這種情況,如果你對其實際操作或是其相關(guān)的實際應(yīng)用有不解之處時,你就可以瀏覽我們的文章了

寧津網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),寧津網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為寧津近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的寧津做網(wǎng)站的公司定做!

混合排序規(guī)則環(huán)境

兼容性問題對使用多個排序規(guī)則存儲數(shù)據(jù)的組織會有影響。大多數(shù)組織對所有的 Microsoft? SQL Server數(shù)據(jù)庫? 2000 數(shù)據(jù)庫使用相同的排序規(guī)則,從而消除了所有的排序規(guī)則兼容性問題。然而,有些組織存儲的數(shù)據(jù)必須可由使用不同語言的用戶查看,并且希望盡可能減少排序規(guī)則兼容性問題。

所有字符和 Unicode 對象(如列、變量和常量)都有排序規(guī)則。每當(dāng)使用具有不同排序規(guī)則和代碼頁的對象時,都必須對查詢進行編碼以符合排序規(guī)則類型強制規(guī)則。當(dāng)對使用運算符將多個具有不同排序規(guī)則的簡單表達式組合在一起的復(fù)雜表達式進行編碼時,所有排序規(guī)則必須可以隱性轉(zhuǎn)換,或者可以使用 COLLATE 子句顯式轉(zhuǎn)換。

如果沒有在字符或 Unicode 表達式中指定排序規(guī)則,則默認(rèn)排序規(guī)則可能因連接的當(dāng)前數(shù)據(jù)庫設(shè)置而異。例如,如果沒有在字符或 Unicode 常量上指定 COLLATE 子句,則將給該常量指派當(dāng)前數(shù)據(jù)庫的默認(rèn)排序規(guī)則。這意味著 Transact-SQL 語句的結(jié)果在不同數(shù)據(jù)庫的上下文中執(zhí)行時可能有不同的排序規(guī)則。

若設(shè)置復(fù)制,則復(fù)制網(wǎng)絡(luò)(包括發(fā)布服務(wù)器、訂閱服務(wù)器和分發(fā)服務(wù)器)中包括的所有數(shù)據(jù)庫都必須使用相同的代碼頁。

大容量復(fù)制函數(shù) BULK INSERT 和 bcp 命令提示實用工具支持列排序規(guī)則。

盡可能減少排序規(guī)則問題

如果必須存儲反映多種語言的字符數(shù)據(jù),始終使用 Unicode nchar、nvarchar 和 ntext 數(shù)據(jù)類型(而不是 char、varchar、text 數(shù)據(jù)類型)可使排序規(guī)則兼容性問題減到最少。使用 Unicode 數(shù)據(jù)類型可消除代碼頁轉(zhuǎn)換問題。

對減少排序規(guī)則兼容性問題的另一個建議是使站點標(biāo)準(zhǔn)化,使之區(qū)分或不區(qū)分大小寫和重音字符。若始終選擇對大小寫和重音使用相同敏感性的排序規(guī)則,最終用戶將在所有系統(tǒng)間體驗到一致的行為。大多數(shù) SQL Server 2000 站點選擇不區(qū)分大小寫但區(qū)分重音。

大小寫敏感性還適用于 SQL Server數(shù)據(jù)庫 的對象名;因此,若指定區(qū)分大小寫的排序規(guī)則,則所有用戶在查詢數(shù)據(jù)庫時必須指定正確的大小寫。例如,若服務(wù)器區(qū)分大小寫并創(chuàng)建一個名為 Employees 的表,則所有的查詢都必須將該表引用為 Employees。未使用正確大小寫的引用(如 EMPLOYEES 或 employees)將無效。

排序規(guī)則和 tempdb

每次啟動 SQL Server 時都生成 tempdb 數(shù)據(jù)庫,該數(shù)據(jù)庫與 model 數(shù)據(jù)庫的默認(rèn)排序規(guī)則相同,后者通常與實例的默認(rèn)排序規(guī)則相同。如果為創(chuàng)建的用戶數(shù)據(jù)庫指定的默認(rèn)排序規(guī)則與 model 的排序規(guī)則不同,則該用戶數(shù)據(jù)庫與 tempdb 的默認(rèn)排序規(guī)則也不同。所有的臨時存儲過程或臨時表都創(chuàng)建并存儲在 tempdb 中,這意味著臨時表中的所有隱性列以及臨時存儲過程中的所有類型強制默認(rèn)常量、變量和參數(shù)與***表和***存儲過程中創(chuàng)建的對等對象使用不同的排序規(guī)則。

text 數(shù)據(jù)類型可能由此產(chǎn)生問題。例如,某個 SQL Server 2000 實例的默認(rèn)排序規(guī)則是 Latin1_General_CS_AS,并且執(zhí)行以下語句:

 
 
 
  1. CREATE DATABASE TestDB COLLATE Estonian_CS_AS USE TestDB   
  2. CREATE TABLE TestPermTab (PrimaryKey int PRIMARY KEY, TextCol text )  

在該系統(tǒng)中,tempdb 數(shù)據(jù)庫對代碼頁 1252 使用 Latin1_General_CS_AS 排序規(guī)則,TestDB 和 TestPermTab.TextCol 對代碼頁 1257 使用 Estonian_CS_AS 排序規(guī)則。如果接下來執(zhí)行:

 
 
 
  1. USE TestDB GO -- Create a temporary table with the same column declarations   
  2. -- as TestPermTab CREATE TABLE #TestTempTab (PrimaryKey int PRIMARY KEY, TextCol text )  
  3.  -- This statement gets an code page conversion not allowed error   
  4. -- because the temporary table is created in tempdb, which has a  
  5. -- different default collation than TestDB. INSERT INTO  
  6. #TestTempTab SELECT * FROM TestPermTab GO  

若要消除錯誤,可使用以下可選方法之一:

在兩個 TextCol 列中使用 Unicode 數(shù)據(jù)類型 ntext 而不是 text。

指定臨時表列使用用戶數(shù)據(jù)庫(而不是 tempdb)的默認(rèn)排序規(guī)則。如果系統(tǒng)需要,這將使臨時表得以在多個數(shù)據(jù)庫中使用具有類似格式的表。

 
 
 
  1. CREATE TABLE #TestTempTab (PrimaryKey int PRIMARY KEY,   
  2. TextCol text COLLATE database_default )   

指定 #TestTempTab 列的正確排序規(guī)則:

 
 
 
  1. CREATE TABLE #TestTempTab (PrimaryKey int PRIMARY KEY, TextCol text COLLATE Estonian_CS_AS ) 

BACKUP 和 RESTORE 中的排序規(guī)則

若還原數(shù)據(jù)庫,RESTORE 將使用記錄在備份文件中的源數(shù)據(jù)庫的排序規(guī)則。還原的數(shù)據(jù)庫與備份的原始數(shù)據(jù)庫使用相同的排序規(guī)則。數(shù)據(jù)庫內(nèi)具有不同排序規(guī)則的個別對象仍保留其原來的排序規(guī)則。即使運行還原的實例與運行 BACKUP 的實例使用不同的默認(rèn)排序規(guī)則,仍能還原數(shù)據(jù)庫。

若目標(biāo)服務(wù)器上已存在同名數(shù)據(jù)庫,還原備份的***方法是在 RESTORE 語句中指定 REPLACE。若指定 REPLACE,現(xiàn)有的數(shù)據(jù)庫將由備份文件中的數(shù)據(jù)庫內(nèi)容完全替換,并且還原數(shù)據(jù)庫的排序規(guī)則將與備份文件中記錄的排序規(guī)則相同。

若還原日志備份,目的數(shù)據(jù)庫必須與源數(shù)據(jù)庫的排序規(guī)則相同。

排序規(guī)則和文本列

若創(chuàng)建的含有 text 列的表所使用的代碼頁與數(shù)據(jù)庫默認(rèn)排序規(guī)則的代碼頁不同,則僅有兩種方法可指定插入列的數(shù)據(jù)值或更新現(xiàn)有值。可以:

指定 Unicode 常量。

從另一個具有相同代碼頁的列中選擇值。

假設(shè)數(shù)據(jù)庫和表如下:

 
 
 
  1. -- Create a database with a default of code page 1252. CREATE DATABASE TestDB  
  2. COLLATE Latin1_General_CS_AS -- Create a table with a different code page,   
  3. 1253. CREATE TABLE TestTab (PrimaryKey int PRIMARY KEY, TextCol text COLLATE Greek_CS_AS )  
  4. -- This INSERT statement successfully inserts a Unicode string. INSERT INTO TestTab VALUES (1, N'abc')  
  5. -- This INSERT statement successfully inserts data by selecting   
  6. -- from a similarly formatted table in another database that uses  
  7. -- uses the Greek 1253 code page as its default. INSERT  
  8. INTO TestTab SELECT * FROM GreekDatabase.dbo.TestTab  

以上的相關(guān)內(nèi)容就是對SQL Server數(shù)據(jù)庫的 “混合排序規(guī)則環(huán)境”的介紹,望你能有所收獲。


本文題目:SQLServer數(shù)據(jù)庫之“混合排序規(guī)則環(huán)境”的描述
文章網(wǎng)址:http://m.jiaoqi3.com/article/ccosgjs.html