全角和半角字符,使用字符表变量进行数据查询出现违反唯一约束问题的解决方案

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

全角和半角字符,使用字符表变量进行数据查询出现违反唯一约束问题的解决方案

问题现象:


原因:

        在于SQL Server采用简体中文字符集下,会将全角和半角字符认为是相同的值。如下面的字符会认为是相同的。

        而变量定义的时候,增加了主键约束,需要保证数据唯一性,从而导致唯一性问题。

        CREATE TYPE [dbo].[udt_varchartable] AS TABLE( [FID] [varchar](450) NOT NULL, PRIMARY KEY CLUSTERED ( [FID] ASC )


解决方法:

        针对出现问题的客户修改表变量的定义,将主键调整为聚集索引类型

        CREATE TYPE [dbo].[udt_varchartable] AS TABLE( [FID] [varchar](450) NOT NULL,index  idx_udt_varchartable1 clustered(fid))


注意:

        安装星空产品新补丁时,需要按解决方法重建表变量定义。

全角和半角字符,使用字符表变量进行数据查询出现违反唯一约束问题的解决方案

问题现象:原因: 在于SQL Server采用简体中文字符集下,会将全角和半角字符认为是相同的值。如下面的字符会认为是相同的。 ...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息