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

نام تاپیک: تغییر یک فیلد در کل بانک

  1. #1

    تغییر یک فیلد در کل بانک

    با سلام به دوستان
    من در بانکم فیلدی دارم که در تعدادی از جداول وجود داره حالا اگر بخوام این فیلد رو در تمام جداول تغییر بدم و یا حذف کنم ایا حتما باید برای تک تک جداول دستور delete یا update بنویسم یا راه حل دیگه ای هم دارد؟
    چی کار کنم؟
    با تشکر

  2. #2

    نقل قول: تغییر یک فیلد در کل بانک

    سلام
    تا جایی که من میدونم SQL مثل ویژوال استادیو بهتون امکانات Refactor را نمیده، ولی یه راه هست که ممکنه به کارتون بیاد، البته اگه اولا توی دیتابیس فیلد یا جدول دیگه ای نباشه که به اون نام باشه، ثانیاً چدوالتون همگی خالی باشه (پون بعد از اجرا همه ی دیتابیس خالی میشه)
    راه حل هم اینه:
    توی قسمت Generate Script از کل دیتابیس یک اسکریپت بگیرید، بعد توی اون اسکریپت اون اسامی که میخواهید را Replace کنید و اسکریپت را اجرا کنید ...

  3. #3
    کاربر دائمی آواتار Galawij
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    شاره که م سنه
    پست
    711

    نقل قول: تغییر یک فیلد در کل بانک

    تا جایی که من میدونم SQL مثل ویژوال استادیو بهتون امکانات Refactor را نمیده،
    شناخت شما از SQL کم هست!!
    برای این کار باید اسم فیلدتان در همه جداول یکی باشد، مثال:
    execsp_msforeachtable N'
    IF EXISTS(SELECT 1 FROM sys.columns WHERE object_id=OBJECT_ID(''?'') AND name = ''Col1'')
    EXEC (''UPDATE ? SET Col1= case when Col1 = ''''ppp'''' then ''''qqq'''' when Col1 = ''''aaa'''' then ''''xxx'''' end'')'

    جهت کسب اطلاعات بیشتر به این لینک مراجعه کنید.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    آبان 1385
    محل زندگی
    تهران پر از دود
    پست
    229

    نقل قول: تغییر یک فیلد در کل بانک

    نقل قول نوشته شده توسط Galawij مشاهده تاپیک
    شناخت شما از SQL کم هست!!
    برای این کار باید اسم فیلدتان در همه جداول یکی باشد، مثال:
    execsp_msforeachtable N'
    IF EXISTS(SELECT 1 FROM sys.columns WHERE object_id=OBJECT_ID(''?'') AND name = ''Col1'')
    EXEC (''UPDATE ? SET Col1= case when Col1 = ''''ppp'''' then ''''qqq'''' when Col1 = ''''aaa'''' then ''''xxx'''' end'')'

    جهت کسب اطلاعات بیشتر به این لینک مراجعه کنید.
    دوستان میشه یه کمی در مورد کد بالا توضیح بدید میخوام نام یک ستون را در تمامی جداول و ویوهای دیتا بیس تغییر بدیم

    چه دستوری باید بنویسیم منظور از ppp یا qqq و aaa در دستور بالا چی هستش

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آبان 1385
    محل زندگی
    تهران پر از دود
    پست
    229

    نقل قول: تغییر یک فیلد در کل بانک

    پیدا کردم تغییر نام ستون Phone به Telephone


    select 'EXEC sp_rename N''' + sch.name + '.' + so.name + '.Phone'', N''TelePhone'', N''COLUMN'';',
    *
    from sys.objects so
    join sys.columns sc on so.object_id = sc.object_id
    join sys.schemas sch on sch.schema_id = so.schema_id
    where sc.name = 'Phone'



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

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

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