在SSMS 2008 R2中,我创建了一个表:
aTest(Albnian varchar(10), Dflt varchar(10))
在SSMS表设计器中,这两列都具有排序规则:“<数据库默认值”>(在“列属性”中的“表设计器”)。
我将“Albnian”列的排序规则更改为非默认值,例如,阿尔巴尼亚语的“Ci_as”。
如果我在SSMS中编写该表的脚本(右键单击“Atest”脚本表为“Create to”New Query Editor窗口),我得到的[1]完全没有明确的排序脚本。
坏的。
显然,我们希望表的脚本中包含非默认排序规则的显式排序规则(开发人员有意为特定目的引入的排序规则),而没有默认排序规则的排序规则。
在SSMS菜单“工具”“选项”“SQL Server对象资源管理器”“脚本”中,我更改了:
但现在,我正在编写所有列排序规则的脚本,包括默认和非默认排序规则[2]。
如何将脚本生成配置为编写非默认排序规则的脚本并跳过默认排序规则,如[3]所示?
[1]表的默认脚本:
CREATE TABLE [dbo].[aTest]
(
[Albnian] [varchar](10) NOT NULL,
[Dflt] [varchar](10) NOT NULL
) ON [PRIMARY]
[2]将“include collation”后的表脚本更改为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]
相关问题: