اینطوری فک کنم درسته
DECLARE @Table NVARCHAR(MAX) ,
@Col NVARCHAR(MAX) ,
@schma nvarchar(max)
DECLARE Table_Cursor CURSOR
FOR
--پيدا كردن تمام فيلدهاي متني تمام جداول ديتابيس جاري
SELECT a.name, --table
b.name --col
,s.name
FROM sysobjects a,
syscolumns b
,sys.tables t,
sys.schemas s
WHERE a.id = b.id and t.object_id = a.id
and s.schema_id = t.schema_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, @schma
WHILE (@@FETCH_STATUS = 0)
BEGIN
EXEC (
'update ['+ @schma +'].[' + @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





پاسخ با نقل قول