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数据库中,但当您更改其余数据库的排序规则时,也能够使用一些脚本,你只须要在操做过程当中注意几个方面(计算列、函数等)。

相关文章
相关标签/搜索