درخواست تابع یکسان سازی ی و ک

ساخت وبلاگ

سلام
من تابع, زیر رابدست اوردم


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


اما مشکلی که دارم اینه این دستورات فقط برای جداولی که اسکما dbo داره درست کار میکنه
اما برای جداولی که اسکما dbo ندارند ارور زیر را میدهد

کد HTML:

Msg 208, Level 16, State 1, Line 1 Invalid object name 'City'. Table: City Col: LatinName

کد را باید چگونه تغییر بدهم

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 233 تاريخ : پنجشنبه 22 آذر 1397 ساعت: 17:13