是否有任何配置或选项可以对列排序规则进行永久更改,这样我就不必到处重复COLLATE
了?
以下是我的SQL查询:
select
y.[Key] FieldName,
(select FieldName
from [dbo].GetFields(z.[Key])
where FieldType = y.[Key] COLLATE Chinese_Taiwan_Stroke_CI_AS) COLLATE Chinese_Taiwan_Stroke_CI_AS
from
FieldTableZ z
outer apply
FieldTableY y
不清楚你在这里想做什么。。要更改整个服务器、数据库的排序规则,还是只更改某些列的排序规则?我会尽力回答所有的问题。一个简单的谷歌搜索"sql server更改数据库排序规则"就会出现以下内容:
-
要更改服务器排序规则,请参阅Microsoft的官方文档:
- 设置或更改服务器排序规则
如果你想要一个循序渐进的指南,这里是:
- 安装后更改SQL Server排序规则-Douglas Castilho著
-
要更改数据库排序规则,例如:
ALTER DATABASE CURRENT COLLATE SQL_Latin1_General_CP1_CI_AI
-
更改表格列的排序规则:
- 更改SQL Server数据库排序规则-Paris Polyzos的博客
也就是说,您可以使用更改列排序规则
ALTER TABLE [<Table>] ALTER COLUMN [<Column>] <ColumnType> COLLATE <NewCollation>
如果您使用的是图表,则情况并非如此;图形的内部列不能以这种方式更改。
尽管如此,我猜这些都不适合查询的样子——您在查询中复制了[Key]
列(看起来像主键),并试图依赖排序规则的副作用。。顺便说一句,尽量不要让人们只是为你做谷歌搜索的工作。