在SSMS 2008 R2中,我创建了一个表:
aTest(Albnian varchar(10), Dflt varchar(10))
在 SSMS 表设计器中,两列都有排序规则:“”(在“列属性”→“表设计器”下)
我将“Albnian”列的排序规则更改为非默认排序规则,例如 Albanian_CI_AS。
如果我在 SSMS 中编写表脚本(右键单击“aTest”→“将表脚本编写为”→“创建到”→“新查询编辑器窗口”,我会得到 [1],根本没有编写显式排序规则。
Bad.
显然,人们希望该表的脚本中使用显式排序规则来实现非默认排序规则(开发人员出于特定目的而有意引入的排序规则),并且不使用默认排序规则来编写脚本。
在 SSMS 菜单 → 工具 → 选项 → SQL Server 对象资源管理器 → 脚本中,我更改了:
但现在,我正在编写所有列排序规则,包括默认的和非默认的 [2]。
如何配置脚本生成以编写非默认排序规则的脚本并跳过默认排序规则,如 [3] 中所示?
[1] 表的默认脚本:
CREATE TABLE [dbo].[aTest]
(
[Albnian] [varchar](10) NOT NULL,
[Dflt] [varchar](10) NOT NULL
) ON [PRIMARY]
[2]“包含排序规则”更改为 True 后的表脚本
CREATE TABLE [dbo].[aTest]
(
[Albnian] [varchar](10) COLLATE Albanian_CI_AS NOT NULL,
[Dflt] [varchar](10) COLLATE Cyrillic_General_CI_AS NOT NULL
) ON [PRIMARY]
[3] 所需的整理脚本生成行为:
CREATE TABLE [dbo].[aTest]
(
[Albnian] [varchar](10) COLLATE Albanian_CI_AS NOT NULL,
--non-default should be scripted
[Dflt] [varchar](10) NOT NULL
-- default database collation should not be scripted
) ON [PRIMARY]
相关问题:
-
开发和生产 SQL Server 之间使用不同的排序规则会出现哪些问题? https://stackoverflow.com/questions/4020870/what-issues-to-anticipate-having-different-collations-between-development-and-pro