因此,尝试删除所有扩展的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
注意:这些排序规则技巧仅适用于char
和varchar
数据类型。