當前位置:首頁 » 編程語言 » sqlserver規則

sqlserver規則

發布時間: 2025-10-02 07:00:26

sql Server轉換資料庫的排序規則

什麼是排序規則?

排序規則指定了表示每個字元的位模式 它還指定了用於排序和比較字元的規則 排序規則具有下面的特徵

◆語言

◆區分大小寫

◆區分重音

◆區分假名

要了解伺服器當前使用的排序規則 可以在 SQL 查詢分析器中運行 sp_helpsort 系統過程

SQL Server 不支持使用多個排序規則的資料庫 因此 在 SQL Server 中創建的所有資料庫均使用默認的排喊瞎序規則 SQL Server 支持多個排序鄭譽空規則 SQL Server 資料庫可使用除默認排序規則以外的其他排序規則 此外 SQL Server 還支持使用排序規則(除資料庫創建的排序規則外)的列

在 DTS 中使用「使用排序規則」選項的條件

SQL Server 可包含多個資料庫或列 它們可以使用除默認排序規則以外的排序規則 因此 在數據轉換服務 (DTS) 中引入了名為「使用排序規則」的新選項 「使用排序規則」選項的行為由要執行的轉換的類型決定 如果要在 SQL Server 的兩個實例之間傳輸數據且啟用了「使用排序規則」選項 則數據將從源代碼頁轉換到目標代碼頁 如果沒有啟用「使用排序規則」選項且 SQL Server 的兩個實例中的代碼頁相同 則會直接傳輸數據 如果代碼頁不同 則數據將從源代碼頁轉換到目標代碼頁 但是 在傳輸數據時 轉換可能會出現錯誤

注意 如果排序規則用於數據本身並且列使用的是 COLLATE 子句 則排序規則很重要 「使用排序規則」選項確定當數據從一個排序規則傳輸到另一個排序規則時是否轉換代碼頁 「使用排序規則」選項不會影響是否設置了列定義的 COLLATE 屬性 因此 如果源表包含使用 COLLATE 子句創建的帶有特定排序規則的列 則此排序規則將在傳輸數據時得以保留 而不管是否在數據轉換服務向導中啟用了「使用排序規則」選項

不改變資料庫排序規則的轉換方法

下列方法不改變資料庫的排序規則

◆備份和還原虛鏈 在某伺服器上還原資料庫時 如果該伺服器使用的排序規則與用於備份的伺服器使用的排序規則不同 則不會將還原後的資料庫轉換為使用新的排序規則 資料庫排序規則仍保持原樣

◆分離和重新附加 如果分離使用某一排序規則創建的資料庫 並且將該資料庫重新附加到使用其他排序規則的另一伺服器 則該資料庫的排序規則不會改變 資料庫的排序規則仍保持原樣

◆復制資料庫向導 復制資料庫向導實質上使分離和重新附加的過程自動化了 資料庫的排序規則仍保持原樣

注意 復制資料庫向導僅在 SQL Server 中可用

在 SQL Server 中轉換資料庫的排序規則

要在運行 SQL Server 的兩台計算機之間更改資料庫的排序規則 必須在目標伺服器上創建用戶資料庫和所有對象 然後使用 DTS 或 bcp 實用工具傳輸數據

要將資料庫從運行 SQL Server 的計算機傳輸到運行 SQL Server 且具有另一排序規則的計算機 請按照下列步驟操作

備份源資料庫

使用 SQL Server 企業管理器為源資料庫中的所有對象創建腳本

要從資料庫的所有表中導出數據 請使用 DTS 或 bcp 實用工具

使用 SQL Server 企業管理器或 CREATE DATABASE 語句在目標伺服器上創建新的資料庫

注意 當使用 CREATE DATABASE 語句時 資料庫將使用與運行 SQL Server 的計算機相同的排序規則

使用 SQL 查詢分析器來運行在步驟 中創建的腳本 以便在目標資料庫中重新創建所有對象

注意 此表和列將使用與運行 SQL Server 的計算機相同的排序規則

使用 DTS 或 bcp 實用工具將數據導入到目標表中

將 SQL Server 中資料庫的排序規則轉換為 SQL Server 中的排序規則

要在 SQL Server 和 SQL Server 之間更改資料庫的排序規則 必須在傳輸數據之前 在目標伺服器上使用適當的排序規則創建資料庫 列或同時創建資料庫和列 但是 在將數據從 SQL Server 傳輸到 SQL Server 時 可以使用 DTS 刪除並重新創建對象 因此 在執行此操作時 必須在 DTS 中啟用「使用排序規則」選項

注意 請不要使用 SQL Server 中的 DTS 實用工具與運行 SQL Server 的計算機相互傳輸所有對象 如果必須在 SQL Server 和 SQL Server 之間傳輸數據 則必須使用 SQL Server 中的 DTS 實用工具

要將 SQL Server 中資料庫的排序規則轉換為 SQL Server 中的排序規則 請按照下列步驟操作

備份源資料庫

使用 SQL Server 企業管理器為源資料庫中的所有對象創建腳本

如果列必須使用其他排序規則 而不使用目標資料庫上的默認排序規則 請對腳本中相應列的排序規則進行必要的更改

使用適當的排序規則在目標伺服器上創建新的資料庫

使用 SQL 查詢分析器在目標伺服器上運行在步驟 中創建的腳本 以便在資料庫中重新創建所有對象

注意 新表和列使用與資料庫相同的排序規則 除非您為這些列指定了其他排序規則

使用 DTS 或 bcp 實用工具傳輸數據

注意 如果使用 DTS 請驗證下列信息

◆確保在將數據從 SQL Server 傳輸到 SQL Server 時啟用了「使用排序規則」選項

◆因為已在目標伺服器上使用適當的排序規則創建了對象 所以要禁用「首先創建目標對象」選項

在 SQL Server 中轉換資料庫的排序規則

要在 SQL Server 中轉換資料庫的排序規則 請按照下列步驟操作

備份源資料庫

注意所有列是否使用 COLLATE 子句

使用適當的排序規則在目標伺服器上創建新的資料庫

如果沒有列使用 COLLATE 子句 請使用 DTS 將數據傳輸到目標伺服器 為此 請啟用「使用排序規則」選項以進行代碼頁轉換 並將數據轉換為目標資料庫上的新排序規則 如果所有列均使用 COLLATE 子句 請按照下列步驟操作

a 為所有對象(不包括索引 觸發器 主鍵 外鍵 默認設置和約束)生成腳本 此外 確保啟用了「僅為與 版兼容的功能編寫腳本」選項 以便從腳本刪除 COLLATE 子句

注意 使用「僅為與 版兼容的功能編寫腳本」選項時 可以更改排序規則 但是 生成腳本時將不考慮任何新的 SQL Server 選項(包括用戶定義的函數 擴展屬性 INSTEAD OF 觸發器和視圖上的索引)

b 在目標資料庫上運行步驟 a 中創建的腳本 以便使用目標資料庫的排序規則創建對象

c 使用 DTS 僅傳輸源資料庫中的數據

d 成功傳輸數據後 將會為源資料庫中的所有約束 外鍵 主鍵和索引生成腳本

e 在目標資料庫上運行步驟 d 中創建的腳本

更改 master 資料庫的排序規則

如果要更改 master 資料庫的排序規則 則必須重建 master 資料庫 在重建 master 資料庫時 實質上是創建了新的 master 資料庫 因此 重建 master 資料庫之前 應考慮下列事項

◆確保創建了當前 master 資料庫的有效備份 在重建 master 資料庫時 還會重建 msdb 資料庫和 model 資料庫 因此 在重建 master 資料庫之前必須備份 msdb 資料庫和 model 資料庫 msdb 資料庫是用於存儲 SQL Server 作業 警報 運算符和 DTS 包的系統資料庫 model 資料庫是創建新資料庫時所使用的模板資料庫

◆因為重建 master 資料庫會創建一個新的 master 資料庫 所以必須在重建 master 資料庫之後重新輸入現有登錄信息 因此 還必須在重建 master 資料庫之前導出登錄信息 然後在重建 master 資料庫後 導入登錄信息

◆因為在重建 master 資料庫時會重建 msdb 資料庫 所以在重建 master 資料庫之前 必須為所有作業 警報和運算符生成腳本 此外 還必須確保移動了所有 DTS 包

◆因為在重建 master 資料庫時會重建 model 資料庫 所以在重建 master 資料庫之前 必須記下或導出以前對 model 資料庫所做的全部更改或為其生成腳本 重建 model 資料庫之後 請重新應用已記錄的全部更改

在 SQL Server 中更改 master 資料庫的排序規則

更改 master 資料庫的排序規則之前 請按照下列步驟操作

重建 master 資料庫之後 不會自動恢復在重建此資料庫之前創建的所有資料庫 因此 所有資料庫必須從備份進行還原 或者如果文件仍在磁碟上 則可以使用 sp_attach_db 系統存儲過程重新附加資料庫 請確保在重建 master 資料庫之前將所有必要的信息重新附加到現有資料庫

在重建 master 資料庫時 僅更改 master 資料庫 model 資料庫和 msdb 資料庫的排序規則 不會更改用戶資料庫的排序規則 要更改現有用戶資料庫的排序規則或者使用適當的排序規則創建新的資料庫 請使用 ALTER DATABASE 命令 然後使用 DTS 或 bcp 實用工具將數據傳輸到新的資料庫

注意 如果在 SQL Server 中使用 ALTER DATABASE 命令來更改資料庫的排序規則 則表中列的排序規則將不會自動更改 要更改列的排序規則 請使用 ALTER TABLE 命令和 ALTER COLUMN 命令 如果使用 DTS 則可以在傳輸數據或使用「使用排序規則」選項之前 使用適當的排序規則創建表和列 如果使用的 DTS 和表已經包含適當的排序規則 請確保在運行軟體包之前禁用了「首先刪除現有對象」選項

在 SQL Server 中更改 master 資料庫的排序規則

更改 master 資料庫的排序規則之前 請按照下列步驟操作

SQL Server 不支持資料庫使用除默認排序規則以外的排序規則 因此 在重建 master 資料庫之前 請從用戶資料庫中導出所有數據

為資料庫中的所有對象生成腳本

使用適當的排序規則重新創建 master 資料庫

創建新的資料庫 使用新的默認排序規則自動創建新的資料庫

lishixin/Article/program/SQLServer/201311/22349

㈡ 如何創建SqlServer視圖的索引

創建SqlServer視圖的索引能夠顯著提高數據檢索效率,使得現有查詢更加高效。視圖上的第一個索引必須是唯一聚集索引,之後可以添加其他非聚集索引。視圖索引的命名規則與表索引一致,但視圖名替代了表名。創建視圖時需使用WITH SCHEMABINDING選項,否則會因未綁定到架構而報錯。視圖轉換為索引視圖時,需遵守多個規則,包括僅使用表、表屬於同一個所有者、鏈接的表在同一資料庫中、不包含特定子句和函數、所有欄位必須顯示指定等。

創建索引視圖時,必須確保所有基本表和視圖使用SET ANSI_NULLS ON創建。在創建索引或執行IUD操作時,必須設置ANSI_NULLS、ANSI_PADDING、ANSI_WARNINGS、ARITHABORT、CONCAT_NULL_YIELDS_NULL、QUOTED_IDENTIFIER、NUMERIC_ROUNDABORT等選項。這些設置的具體信息可以在SQL Server聯機幫助中查閱。

索引視圖的創建要求SQL Server版本達到2000企業版或開發版及以上。遵循這些規則和設置,可以有效提高視圖的查詢效率,特別是在大數據處理場景中。

索引視圖的創建需要精確的SQL語句和正確的資料庫環境配置。例如,創建視圖時使用以下語句:
Create VIEW vXXX WITH SCHEMABINDING AS…… Create UNIQUE CLUSTERED INDEX idxXXX ON vXXX(cXXX)
這將確保視圖可以高效地被查詢。

值得注意的是,視圖轉換為索引視圖的過程會將視圖轉化為一個可以高效檢索數據的結構,但同時也帶來了對視圖復雜性的要求。因此,創建索引視圖時需仔細考慮視圖的結構和使用場景。

在創建索引視圖的過程中,必須嚴格遵守上述規則,以確保視圖能夠正確地轉換為索引視圖,並且能夠在需要時高效地執行查詢。

㈢ sqlserver中 varchar 最大長度是多少

最大長度8000,用max可以存儲達到2G。

例如:

varchar [ ( n | max) ]

可變長度,非 Unicode 字元數據。n 的取值范圍為 1 至 8,000。max 指示最大存儲大小是 2^31-1 個位元組。

在某些情況下,前台應用對過長的字串是無法正確處理的,比如一些表格控制,比如C++定義的字元串變數。

(3)sqlserver規則擴展閱讀:

注意事項

存儲限制

varchar 欄位是將實際內容單獨存儲在聚簇索引之外,內容開頭用1到2個位元組表示實際長度(長度超過255時需要2個位元組),因此最大長度不能超過65535。

1、編碼長度限制

字元類型若為gbk,每個字元最多佔2個位元組,最大長度不能超過32766;

字元類型若為utf8,每個字元最多佔3個位元組,最大長度不能超過21845。

若定義的時候超過上述限制,則varchar欄位會被強行轉為text類型,並產生warning。

2、行長度限制

導致實際應用中varchar長度限制的是一個行定義的長度。 MySQL要求一個行的定義長度不能超過65535。若定義的表長度超過這個值,則提示

ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。

㈣ sql server的對象命名規則是什麼

自己搜索一下就是了,我給你一段:

為了提供完善的資料庫管理機制,SQL Server 設計了嚴格的命名規則。在創建或引用資料庫實體,如表、索引、約束等時,必須遵守SQL Server 的命名規則,否則有可能發生一些難以預料和檢查的錯誤。
本文將講述:標識符的分類和格式規定;資料庫對象的命名規定與使用原則。希望對您會有所幫助。
標識符分類
SQL Server的所有對象,包括伺服器、資料庫以及資料庫對象,如表、視圖、列、索引、觸發器、存儲過程、規則、默認值和約束等都可以有一個標識符。對絕大多數對象來說,標識符是必不可少的,但對某些對象如約束來說,是否規定標識符是可選的。對象的標識符一般在創建對象時定義,作為引用對象的工具使用。
例如下面的SQL語句:
Create table student
(
id int primary key,
name varchar(20)
)
這個例子創建了一個表格,表格的名字是一個標識符:student;表格中定義了兩列,列的名字分別是id,name,他們都是合法的標識符。這個例子還定義另外一個未命名的主鍵約束。
SQL Server一共定義了兩種類型的標識符:規則標識符(Regular identifier)和界定標識符(Delimited identifier)。
規則標識符
規則標識符嚴格遵守標識符有關格式的規定。所以在T-SQL語句中凡是規則標識符都不必使用界定符,如[]和『』,來進行界定。
如上述例子中使用的表名student 就是一個規則標識符,在student上不必添加界定符。
界定標識符
界定標識符是那些使用了如[]和『』等界定符號來進行位置限定的標識符,使用了界定標識符,既可以遵守標識符命名規則,也可以不遵守標識符命名規則。
Select * from [student] 是要從student 表格中查詢出所有的數據與
Select * from student 等效。
為什麼呢?因為在「[]」中的標識符遵守標識符命名規則,「[]」被忽略不計。
但如果是不遵守標識符命名規則的標識符,那麼在T-SQL語句中必須使用界定符號加以限定,如:
Select * from [my table]
Where [order]=10
在這個例子中,必須使用界定標識符,因為在from子句中的標識符my talbe中含有空格,而where子句中的標識符order 是系統保留字(在查詢分析器里「order」變藍色)。這兩個標識符都不遵守標識符命名規則,必須使用界定符,否則無法通過代碼編譯
標識符格式
標識符格式的規定,其具體內容如下:
標識符的首字母必須是以下兩種情況之一:
所有在統一碼(Unicode)2.0標准規定的字元,包括26個英文字母a-z和A-Z,以及其他一些語言字元,如漢字。例如可以給一個表格命名為「學生基本情況」。下劃線「-」、「@」或「#」。
標識符首字母後的字元可以是:
所有在統一碼(Unicode)2.0標准規定的字元,包括26個英文字母a-z和A-Z,以及其他一些語言字元,如漢字。下劃線「-」、「@」、「$」或「#」。
0,1,2,3,4,5,6,7,8,9。
標識符不允許是T-SQL的保留字。
由於T-SQL不區分大小寫,所以無論是保留字的大寫還是小寫都不允許使用。
標識符內部不允許有空格或特殊字元。
Select * from stu[de]nt –編譯器將返回錯誤信息。因為在標識符stu[de]nt中包含了特殊字元「[」和「]」,所以在編譯上述語句時出錯。
?
以某些特殊符號開頭的標識符在SQL Server系統中具有特定的含義。如「@」開頭的標識符表示這是一個局部變數或是一個函數的參數;以「#」開頭的標識符表示這是一個臨時表或存儲過程;一個以「##」開頭的標識符表示這是一個全局的臨時資料庫對象。T-SQL的全局變數以標志「@@」開頭。為避免同這些全局變數混淆,建議不要使用「@@」作為標識符的開始。
無論是界定標識符還是規則標識符都最多隻能容納128個字元,對於本地的臨時表最多可以有116個字元。
對象命名規則
SQL Server 2000 的資料庫對象名字由1-128個字元組成,不區分大小寫。在一個資料庫中創建了一個資料庫對象後,資料庫對象的全名應該由伺服器名、資料庫名、擁有者名和對象名這四個部分組成,格式如下:
[[[server.][database].][owner_name].]object_name 命名必須都要符合標識符的規定。
在實際引用對象時,可以省略其中某部分的名稱,只留下空白的位置。
實例的命名習慣
在SQL Server 2000中默認實例的名字採用計算機名,實例的名字一般由計算機名字和實例名字兩部分組成。
總之,正確掌握資料庫的命名和引用方式是用好SQL Server 2000的前提,也有助於用戶理解SQL Server 2000中的其他內容。

熱點內容
第十代索納塔哪個配置有定速巡航 發布:2025-10-02 09:10:28 瀏覽:981
按鍵精靈怎麼給多選框加腳本 發布:2025-10-02 09:09:54 瀏覽:281
山東執法監督密碼是什麼 發布:2025-10-02 08:56:58 瀏覽:31
編譯器的設計 發布:2025-10-02 08:37:47 瀏覽:134
加密部落被騙 發布:2025-10-02 08:37:37 瀏覽:313
腳本調用java程序 發布:2025-10-02 08:36:20 瀏覽:215
安卓修改數值用什麼方法 發布:2025-10-02 08:28:28 瀏覽:189
php01 發布:2025-10-02 08:25:21 瀏覽:400
君威哪個配置是18寸輪轂 發布:2025-10-02 08:21:09 瀏覽:98
類原生安卓哪個好 發布:2025-10-02 07:48:05 瀏覽:119