如何从SQL Server中删除扩展的ASCII字符



因此,尝试删除所有扩展的ascii字符,并在ddl中使用排序规则SQL_Latin1_General_CP1253_CI_AI,但仍获得ascii字符。有什么建议吗?

我在sql中有一个值存储为"àccõrd",我希望它存储为accord。当我尝试选择àccõrd collate SQL_Latin1_General_CP1253_CI_AI时,它可以工作,但当我加载时,它仍然被加载为àcc⏴rd

这里有两种方法可以实现您想要做的事情…

第一种方法:用特定的排序规则定义列,例如:

create table dbo.Foo (
  FooName varchar(50) collate SQL_Latin1_General_CP1253_CI_AI
);
insert dbo.Foo (FooName) values ('àccõrd');
select FooName from dbo.Foo;

哪个收益率:

FooName
-------
accord

第二种方法:在将文本插入表格时对其进行整理:

-- Display the SQL Server instance's "default collation," configured during setup.
-- e.g.: SQL_Latin1_General_CP1_CI_AS
select serverproperty('collation') as ServerCollation;
-- Display the current database's "default collation," configured in CREATE DATABASE.
-- e.g.: SQL_Latin1_General_CP1_CI_AS
select collation_name
from sys.databases
where [name]=db_name();
create table dbo.Bar (
  BarName varchar(50) --database default: collate SQL_Latin1_General_CP1_CI_AS
);
insert dbo.Bar (BarName) values ('àccõrd' collate SQL_Latin1_General_CP1253_CI_AI);
select BarName from dbo.Bar;

哪个收益率:

BarName
-------
accord

注意:这些排序规则技巧仅适用于charvarchar数据类型。

相关内容

  • 没有找到相关文章

最新更新