View Full Version : نحوه تعریف فیلد از نوع Identity
سیروس مقصودی
جمعه 19 آذر 1400, 00:04 صبح
با سلام
من جدولی دارم که قبلا ایجاد کرده ام و کاربران اطلاعات زیادی را واردکرده اند. من میخواهم یکی از فیلدها را بصورت Identity تعربف کنم .
من چگونه میتوانم با دستورات Sql ( بدون استفاده از محیط Design ) آن فیلد مورد نظر را بصورت Identity تعریف کنم . لازم بذکر است که داخل فیلد مورد نظر دیتا وجود دارد
با تشکر ...
mazoolagh
یک شنبه 21 آذر 1400, 10:03 صبح
سلام و روز خوش
حتی در ssms هم نمیشه ویژگی identity یک فیلد رو به yes تغییر بدین؛ چون لازمه این کار این هست که جدول فعلی drop و دوباره ساخته بشه و بصورت پیشفرض ssms از انجام این دست تغییرات در جدول جلوگیری میکنه.
البته میشه در تنظیمات ssms این رو غیرفعال کرد ولی مایکروسافت توصیه اکید کرده که اینکار نشه.
با alter column نمیشه فیلد رو از نوع identity کرد ولی میتونین
1- یک فیلد دیگه از نوع identity به جدول اضافه و اطلاعات فیلد اولیه رو در اون کپی و دست آخر فیلد اولیه رو حذف کنین
2- یک جدول دیگه با ساختار مشابه جدول اولیه بسازین که فیلد مورد نظر شما در این جدول identity باشه و اطلاعات جدول قدیم رو در این جدول بریزین و دست آخر هم جدول اولیه رو حذف و جدید رو rename کنین.
من موقعیت مشابه پرسش شما رو قبلا داشتم و هر دو این روشها گرچه درسته ولی برای رکوردهای خیلی زیاد کند هستن.
بجاش میتونین مشابه روش 2 جدول جدید رو بسازین ولی بجای کپی رکوردها از switch to استفاده کنین.
اگر alter table switch to رو جستجو کنین قطعا نمونه کدهای خوبی همراه با توضیحات کاملتر و بهتر پیدا میکنین.
برای ساخت جدول جدید هم میتونین در خود ssms اسکریپت create table جدول رو بگیرین و فقط فیلد مورد نظر رو برای identity ویرایش کنین.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.