K2 4.7 升級 數據庫排序規則更改

介紹

在過去,K2沒有指定安裝過程當中要在其數據庫上使用的標準排序規則。然而,如今K2引入了標準排序規則,以便在以後使用(若是我沒有錯的話,它是在4.7)。
所以, 問題出如今數據庫的排序規則不是Latin1_General_CI_AS的狀況,當您移動到新的 SQL server 並將默認值設置爲Latin1_General_CI_AS時, 數據庫將會不可用,表列、視圖和用戶定義表等主要組件都將受到影響。對於這些主要組件, 諸如存儲過程、索引、函數等的子組件都受到了影響。sql

所以, 本文將指導您更改列排序規則。數據庫

注意: 這是根據 K2 4.7 數據庫遷移記錄的。wordpress

目標受衆

您必須瞭解SQL Server、K2。函數

如今開始

規則與規則

排序規則只適用於某些列,這些列是NVARCHARVARCHAR和更多的文本列。因此咱們必須關注這些列來改變排序規則。
要更改列的排序規則,咱們必須遵照幾個規則。這些是我遇到的規則:測試

  • 列不能被索引(也適用於主鍵、外鍵和約束鍵)。
  • 必須刪除計算列(不能更改計算列排序規則)
  • 必須刪除用戶定義的表(不能直接更改列)

備份

開始以前必須作數據庫備份!code

建議建立2個文件夾,命名爲DropCreate。腳本其實是被隔離的,由於咱們將對咱們將執行什麼以及咱們應該運行哪一個序列有一個更清晰的描述。也就是說,若是你對腳本有信心,你能夠把它們組合在一塊兒。(請注意,這其實是一個很是巨大的腳本,若是你把它們所有結合起來)server

生成腳本

如下是本練習以前須要準備的腳本列表:blog

  1. 刪除索引、PK、FK、CK
  2. 刪除計算列
  3. 刪除存儲過程、視圖、用戶定義的表和函數
  4. 建立索引、PK、FK、CK
  5. 建立計算列
  6. 建立存儲過程、視圖、用戶定義的表和函數
  7. 更改列排序規則

供參考, 生成腳本的順序將與下面的指南不同, 所以只需根據步驟生成它, 咱們就會看到最終的結果。排序

使用SQL Management Studio生成腳本

首先, 咱們將生成如下內容的刪除和建立腳本:索引

  1. 刪除 SP、視圖、函數和用戶定義表的腳本
  2. 爲函數、視圖和用戶定義的表建立腳本
  3. 爲 SP 建立腳本

這些腳本都會經過SQL Management Studio來生成。

生成刪除腳本

  1. 打開SQL Management Studio
  2. 轉到 K2 數據庫 > 右鍵單擊 > 任務 > 生成腳本
  3. 選擇視圖、SP、用戶定義的函數和用戶定義的表類型, 而後單擊 "下一步"
  4. 單擊 "高級" 按鈕, 選擇Script Drop選項
  5. 完成後, 生成腳本。將其保存在Drop文件夾中並命名爲6. Drop All SP View Fn UDT.sql

生成函數、視圖和用戶定義的表建立腳本

  1. 按照上面的步驟操做, 但只選擇視圖、用戶定義的函數和用戶定義的表類型
  2. 在高級中,把以前修改成Script Drop選項,在這裏應該選擇Script Create
  3. 完成後, 生成腳本。將其保存在Create文件夾中並命名爲3. Create View Fn UDT.sql

生成存儲過程建立腳本

  1. 按照上面的步驟操做, 但只選擇存儲過程
  2. 在高級中,把以前修改成Script Drop選項,在這裏應該選擇Script Create
  3. 完成後, 生成腳本。將其保存在Create文件夾中並命名爲5. Create SP.sql

如今咱們已經生成三個腳本了,分別是:

  1. 6. Drop All SP View Fn UDT.sql
  2. 3. Create View Fn UDT.sql
  3. 5. Create SP.sql

生成其它腳本

生成腳本-刪除和建立
這是一個繁瑣的部分, 您須要生成其他的腳本。

  1. Drop FK
  2. Drop Index
  3. Drop PK
  4. Drop CK
  5. Create CK
  6. Create PK
  7. Create Index
  8. Create FK

下載完上述腳本後, 能夠執行腳本並按文件名保存。步驟以下:

  1. 打開1. Drop FK.doc文檔文件, 複製內容, 粘貼到SQL Management studio
  2. 確保您在 K2 數據庫上並執行它
  3. 一旦執行, 該語句將生成到消息框 (以綠色如上所述)。複製消息框內的文本,把它保存爲sql文件(.sql)。
  4. 包含Drop文本的文件名, 請將其保存在Drop文件夾中。包含Create文本的文件名, 請將其保存在Create文件夾中。

生成腳本–更改列排序規則

這有點複雜, 在生成腳本後須要進行一些更改。請下載2. Alter Collation

  1. 打開2. Alter Collation.doc文件, 複製內容, 粘貼到SQL Management studio
  2. 確認歸類名稱參數 (@CollationName nvarchar (255)) 是正確的值。(這應該是要更改的排序規則名稱)
  3. 確保您在 K2 數據庫上並執行它
  4. 一旦執行, 該語句將生成到消息框中。複製消息框內的文本,把它保存爲sql文件(.sql)。
  5. 找到如下四個句子並註釋/刪除:
    • ALTER TABLE [Identity].[Identity] ALTER COLUMN [DisplayName] nvarchar(448) COLLATE…
    • ALTER TABLE [Identity].[Identity] ALTER COLUMN [Email] nvarchar(128) COLLATE…
    • ALTER TABLE [SmartBroker].[SmartObject] ALTER COLUMN [Name_XML] nvarchar(450) COLLATE…
    • ALTER TABLE [SmartBroker].[SmartObject] ALTER COLUMN [DisplayName_XML] nvarchar(450) COLLATE…
  6. 將其保存在Create文件夾中。

在4.7 中, 註釋的四語句其實是表中的四個計算列。稍後將在另外一個腳本中處理此問題。

標準腳本

我將提供3個腳本的其他部分,這將是這個練習所須要的。

  1. Update Database Collation
    要用.sql擴展保存到Create文件夾中,確保K2數據庫名稱正確。
  2. Create Column
    使用.sql擴展將其保存到Create文件夾中。請注意,列在4.7測試,這多是不一樣的其餘版本。
  3. Drop Columns
    使用SQL擴展將其保存到Drop文件夾中。請注意,在4.7中對列進行測試,這可能與其餘版本不一樣。

文件摘要

經過以上, 你應該有下面的:

Drop文件夾:

Create文件夾:

執行腳本

根據文件命名, 您將基於從1開始的序列執行,先從Drop文件夾開始, 而後再執行Create文件夾腳本。

執行完成後, 受影響的列應更新到排序規則,經過檢查列屬性進行快速檢查。

但願這篇文章爲您提供幫助。

其餘

雖然本文在K2數據庫中,但當您更改其餘數據庫的排序規則時,也能夠使用一些腳本,你只須要在操做過程當中注意幾個方面(計算列、函數等)。

相關文章
相關標籤/搜索