نمایش نتایج 1 تا 10 از 10

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

  1. #1

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

    سلام
    دوستان یک بانک اطلاعاتی داریم که حاوی 20 جدول است
    اما داده های واردی در جداول برای ی و ک یکسان نمی باشد
    حال من تابعی می خواهم که همه ی وک را یکسان کند
    باید چه دستوری بنویسم

  2. #2

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

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

    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


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

  3. #3

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

    اینطوری فک کنم درسته


    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


  4. #4

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

    برای من هم این مشکل هست لطفا راهنمابی بفرمایید

  5. #5

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

    سلام
    باسپاس ازجوابتان
    وقتی کد را اجرا میکنم ارور زیر را میدهد

    Msg 16924, Level 16, State 1, Line 37
    Cursorfetch: The number of variables declared in the INTO list must match that of selected columns.

  6. #6

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

    این خطو تغییر بدین
    FETCH NEXT FROM Table_Cursor INTO @Table,@Col , @schma

  7. #7
    کاربر دائمی آواتار rahmatipoor
    تاریخ عضویت
    شهریور 1392
    محل زندگی
    ---
    پست
    418

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


    پروژه سی شارپ:
    اصلاح حروف "ک" و "ی" عربی توی همه جدولهای دیتابیس SQL با یک کلیک



    توضیح :

    با کلیک روی دکمه اصلاح حروف یک پروسیجر توی دیتابیس ایجاد میشه ، پروسیجر اجرا میشه و بعدش هم حذف میشه

    با استفاده از این پروژه حروف عربی از قبیل "ک" و "ی" عربی (که با استاندارد فارسی فرق داره ) و توی جدولهای مختلف دیتابیس وارد شده و باعث ایجاد مشکل موقع جستجو در اطلاعات میشه به صورت اتوماتیک با حروف صحیح فارسی متناظر replace میشه .

    فقط باید توی کلاس clsAccessData توی خط اول ( رشته ConStr ) رشته اتصال خودتون رو جایگزین کنید.
    string ConStr = @"Data Source=.\InstanceName; database = DataBaseName ; Integrated Security=True";



    از دات نت بار 2 هم استفاده شده که dll اون توی مسیر bin توی پروژه هست و توی پروژه های خودتون باید به رفرنسهاتون اضافه بشه.

    لینک دانلود پروژه

  8. #8
    کاربر دائمی آواتار rahmatipoor
    تاریخ عضویت
    شهریور 1392
    محل زندگی
    ---
    پست
    418

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

    برای اس کیو ال هم میتونید از این استور پروسیجر که آقای یوسف زالی عزیز تهیه کردند استفاده کنید. (توی این لینک)

  9. #9

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

    نقل قول نوشته شده توسط hamid_hr مشاهده تاپیک
    اینطوری فک کنم درسته


    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

    سلام
    اگر بخواهم برای یک جدول خاص اینکار را انجام بدهم باید چه کدی بنویسم

  10. #10

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

    سلام
    اگر بخواهم برای یک جدول خاص اینکار را انجام بدهم باید چه کدی بنویسم
    این امتحان کنید!

    DECLARE @Table NVARCHAR(MAX) ,
    @Col NVARCHAR(MAX) ,
    @schma nvarchar(max)
    @Table = "youTable"
    @Col = "columnName"
    @schma = "dbo"

    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'
    )

تاپیک های مشابه

  1. موتور بازی سازی Tom Talking کدام است ؟!
    نوشته شده توسط AliRezaBeytari در بخش Android Studio
    پاسخ: 1
    آخرین پست: چهارشنبه 28 مرداد 1394, 15:43 عصر
  2. درخواست معرفی یک پروژه مناسب جهت پیاده سازی موازی
    نوشته شده توسط behisoft در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 3
    آخرین پست: یک شنبه 29 بهمن 1391, 17:39 عصر
  3. پاسخ: 1
    آخرین پست: سه شنبه 07 دی 1389, 12:57 عصر
  4. درخواست کمک برای ساخت بازی خانه سازی Trisبرای پروژه درسی
    نوشته شده توسط ali2914 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: پنج شنبه 26 خرداد 1384, 21:24 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •