وجود ی و ک عربی در دیتابیس مشکلات زیادی برای جستجو ایجاد میکنه و بررسی و ویرایش این مشکل کار مشکل و یا غیر ممکنه ولی در SQL Server این کار به راحتی و با کد زیر انجام میشه کد زیر تمامی کلمات تو دیتابیس رو بررسی میکنه و به جای ی و ک عربی معادل فارسیشو قرار میده
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
USE DatabaseName; DECLARE @Table NVARCHAR(MAX), @Col NVARCHAR(MAX) DECLARE Table_Cursor CURSOR FOR --پیدا کردن تمام فیلدهای متنی تمام جداول دیتابیس جاری SELECT a.name, --table b.name --col FROM sysobjects a, syscolumns b WHERE a.id = b.id AND a.xtype = 'u' --User table AND ( b.xtype = 99 --ntext OR b.xtype = 35 -- text OR b.xtype = 231 --nvarchar OR b.xtype = 167 --varchar OR b.xtype = 175 --char OR b.xtype = 239 --nchar ) OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @Table,@Col WHILE (@@FETCH_STATUS = 0) BEGIN EXEC ( 'update [' + @Table + '] set [' + @Col + ']= REPLACE(REPLACE(CAST([' + @Col + '] as nvarchar(max)) , NCHAR(1610), NCHAR(1740)),NCHAR(1603),NCHAR(1705)) WHERE CHARINDEX(NCHAR(1603),[' + @Col + '])>0 OR CHARINDEX(NCHAR(1610),[' + @Col + '])>0' ) PRINT 'Table: ' + @Table +' Col: '+ @Col; FETCH NEXT FROM Table_Cursor INTO @Table,@Col END CLOSE Table_Cursor DEALLOCATE Table_Cursor |