X
تبلیغات
رایتل

  تبدیل ی و ک عربی به فارسی در SQL Server توسط T-SQL


  یکشنبه 12 خرداد‌ماه سال 1392

شاید براتون پیش اومده باشه که تا قبل از اینکه نرم افزارتون آماده بشه تا کلمات و حروف عربی رو به فارسی تبدیل و در دیتا بیس ذخیره کنه ، کاربرا کلی حروف عربی توی دیتا بیس زده باشن.
​حالا ما اگر بخواهیم تمام حروف ی و ک عربی رو یه جدول دیتا بیس به حروف ی و ک فارسی تبدیل کنیم ، می تونیم از اسکریپت زیر استفاده کنیم.البته در این روش تمام جداول پایگاه داده به انضمام تمام فیلد های نوع متنی در نظر گرفته می شود و فقط کافیه جای dbName نام دیتا بیس خودتون رو قرار بدید.


Use [dbName]


DECLARE @Table NVARCHAR(MAX),@Column NVARCHAR(MAX)

DECLARE Table_Cursor CURSOR

FOR

--پیدا کردن تمام فیلدهای متنی تمام جداول دیتابیس جاری

SELECT T.name, /* Table */

       C.name  /* Column */

FROM sysobjects T,syscolumns C

WHERE  T.id = C.id  AND T.xtype = 'u' /* User Table */

          AND (C.xtype = 99 /* ntext */

OR C.xtype = 35   /* text */

OR C.xtype = 231  /* nvarchar */

OR C.xtype = 167  /* varchar */

OR C.xtype = 175  /* char */

OR C.xtype = 239  /* nchar */)

OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @Table,@Column

WHILE (@@FETCH_STATUS = 0)

BEGIN

EXEC ('Update [' + @Table + '] Set [' + @Column + '] = REPLACE(REPLACE(CAST([' + @Column + '] as nvarchar(max)), NCHAR(1610), NCHAR(1740)), NCHAR(1603), NCHAR(1705))')

FETCH NEXT FROM Table_Cursor INTO @Table,@Column

END CLOSE Table_Cursor 

DEALLOCATE Table_Cursor