我有問題,我的查詢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' - 這是錯的 –