如何解决如何从 SQL Server 中删除扩展的 ASCII 字符
所以试图删除所有扩展的 ascii 字符并在 ddl 中使用排序规则 sql_latin1_General_CP1253_CI_AI 但仍然得到 ascii 字符。有什么建议吗?
我在 sql 中有一个值存储为“àccõrd”,我希望它按照协议存储。当我尝试选择 à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
数据类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。