当前位置: 首页 > 工具软件 > asSQL > 使用案例 >

COLLATE SQL_Latin1_General_CP1_CI_AS 是干嘛用的

孟晋
2023-12-01

今天看公司代码发现添加某列时,出现了
COLLATE SQL_Latin1_General_CP1_CI_AS NULL
如下:

CREATE TABLE [enstep].[DealModelHeaderValues]
(
[DealModelHeaderValueUID] [bigint] NOT NULL,
[ModelCompositeOrderSEQ] [int] NULL,
[TimeZoneUID] [smallint] NOT NULL,
[PriceRoundingMethod] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[NetValueUnitRoundingMethod] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
)

ALTER TABLE [ENSTEP].[DealModelHeaderValues] ADD CurveAverageRoundingMethod  [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS  NULL

刚开始一脸懵,查了相关资料
相关解答如下:

  • COLLATE: 大概就是校对规则的意思
  • latin1: 让服务器使用charset latin 1处理字符串,基本上是ascii
  • CI: 不区分大小写的比较,所以’ABC’将等于’abc’ / li>
  • AS: 区分音符,因此’ü’不等于’u’
ALTER TABLE [ENSTEP].[DealModelHeaderValues] ADD CurveAverageRoundingMethod  [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS  NULL

所以上面这个ALTER的意思就是,给表DealModelHeaderValues新增一列CurveAverageRoundingMethod ,且当sql查询器查询该列时使用charset latin 1处理字符串,且不区分大小写的比较,并区分音符。

 类似资料: