我有问题,我的查询SQL Server 2012中更新查询在波斯语
UPDATE STUDENTS SET نام = N'%[احسان]%' WHERE نام = N'%[علی]%';
我用这一点,但结果是0行受影响。我有栏目نام
和其他与波斯语名字的列。
我有问题,我的查询SQL Server 2012中更新查询在波斯语
UPDATE STUDENTS SET نام = N'%[احسان]%' WHERE نام = N'%[علی]%';
我用这一点,但结果是0行受影响。我有栏目نام
和其他与波斯语名字的列。
我猜你想在where
条款like
。而且,实际设置值的方式可能不是like
模式。
也许:
UPDATE STUDENTS
SET نام = N'احسان'
WHERE نام LIKE N'%[علی]%';
或者,如果你想更换名称:
UPDATE STUDENTS
SET نام = REPLACE(نام, N'[علی]', N'احسان')
WHERE نام LIKE N'%[علی]%';
也许值得一提的是,对于Arman先生来说,这个查询将用* Ehsan *代替所有* something-Ali-something *,而不是* Ehsan-某种东西*(在他执行查询之前))) – MrSimpleMind
@MrSimpleMind。 。 。你的建议,他真的想'replace()'是合理的。 –
但这对我不起作用:(将所有列的值更改为新值!!!! –
我想你需要一个转换,
我猜你创建你的表像:
create table STUDENTS ([نام] CHAR(60) COLLATE Arabic_CI_AS);
或
create table STUDENTS ([نام] CHAR(60) COLLATE Frisian_100_CI_AI);
update STUDENTS set
[نام]
= convert(text, N'احسان' collate Arabic_CI_AS)
where
[نام]
like
convert(text, N'%علی%' collate Arabic_CI_AS)
;
正如我以前说过,这将改变xALIx只EHSAN。不能仅替换事件。请参阅prev中的评论。回答。
见两个不同的更新,其中
我不明白波斯语,但这似乎是一个复制/粘贴错误'SETنام= N'%[احسان]%''当设置一个新值时,通配符%是无意义的,可能也是方形括号 – Steve
看看你的'where' - 这是错的 –