راهنمای افزودن ستون به جدول SQL Server با ALTER TABLE ADD COLUMN

افزودن ستون جدید به جدول در SQL Server: راهنمای جامع ALTER TABLE ADD COLUMN

دستور ALTER TABLE ADD COLUMN در SQL Server برای افزودن یک ستون جدید به جدول موجود استفاده می‌شود. این دستور به شما امکان می‌دهد تا ساختار جدول خود را بدون نیاز به حذف و بازسازی آن، توسعه دهید. در ادامه، نحوه افزودن انواع مختلف ستون‌ها و نکات مربوط به آن را بررسی می‌کنیم.

افزودن ستون با قابلیت پذیرش مقادیر NULL

در ساده‌ترین حالت، می‌توانید یک ستون جدید را به جدول اضافه کنید که قابلیت پذیرش مقادیر NULL را داشته باشد. این روش سریع‌ترین راه برای افزودن ستون است، زیرا SQL Server نیازی به به‌روزرسانی سطرهای موجود ندارد.

ساختار کلی برای افزودن یک ستون به صورت NULLable به شرح زیر است:

ALTER TABLE table_name ADD column_name data_type NULL;

در این ساختار، table_name نام جدول، column_name نام ستون جدید و data_type نوع داده آن است. کلمه کلیدی NULL به صراحت مشخص می‌کند که ستون می‌تواند مقادیر NULL را بپذیرد.

به عنوان مثال، برای اضافه کردن ستون ‘Email’ از نوع ‘VARCHAR(100)’ به جدول ‘Employees’ که قابلیت پذیرش NULL را دارد:

ALTER TABLE Employees ADD Email VARCHAR(100) NULL;

پس از اجرای این دستور، ستون ‘Email’ با مقدار NULL برای تمام سطرهای موجود به جدول ‘Employees’ اضافه می‌شود.

افزودن ستون با شرط NOT NULL

زمانی که نیاز دارید یک ستون را به گونه‌ای اضافه کنید که مقادیر NULL را نپذیرد (NOT NULL)، باید یک مقدار پیش‌فرض (Default Value) برای آن فراهم کنید. این کار ضروری است زیرا SQL Server نمی‌تواند سطرهای موجود را بدون مقداری برای ستون جدید NOT NULL رها کند.

ساختار افزودن یک ستون NOT NULL همراه با مقدار پیش‌فرض به این صورت است:

ALTER TABLE table_name ADD column_name data_type NOT NULL DEFAULT default_value;

در این ساختار، default_value مقداری است که برای تمام سطرهای موجود در ستون جدید قرار داده می‌شود.

برای مثال، اگر می‌خواهید ستون ‘HireDate’ از نوع ‘DATE’ را به جدول ‘Employees’ اضافه کنید که NOT NULL باشد و مقدار پیش‌فرض آن تاریخ فعلی باشد، می‌توانید از دستور زیر استفاده کنید:

ALTER TABLE Employees ADD HireDate DATE NOT NULL DEFAULT GETDATE();

با اجرای این دستور، ستون ‘HireDate’ اضافه شده و تاریخ استخدام برای تمام کارمندان موجود، تاریخ اجرای دستور خواهد بود.

افزودن چند ستون به صورت همزمان

SQL Server به شما اجازه می‌دهد تا چندین ستون را با یک دستور ALTER TABLE ADD COLUMN اضافه کنید. این کار با جدا کردن تعریف هر ستون با کاما (,) انجام می‌شود.

ساختار کلی برای افزودن چندین ستون به شرح زیر است:

ALTER TABLE table_name ADD
    column1_name data_type [NULL | NOT NULL DEFAULT default_value],
    column2_name data_type [NULL | NOT NULL DEFAULT default_value],
    ...;

هر تعریف ستون می‌تواند شامل NULL، NOT NULL، یا NOT NULL DEFAULT default_value باشد.

به عنوان مثال، برای افزودن ستون‌های ‘Address’ (از نوع NVARCHAR(255) و NULLable) و ‘PhoneNumber’ (از نوع VARCHAR(20) و NULLable) به جدول ‘Customers’:

ALTER TABLE Customers ADD
    Address NVARCHAR(255) NULL,
    PhoneNumber VARCHAR(20) NULL;

این روش بهینه‌تر از اجرای چندین دستور ALTER TABLE مجزا برای هر ستون است، زیرا عملیات کمتری روی جدول انجام می‌دهد.

افزودن ستون همراه با تعریف CONSTRAINT (محدودیت) پیش‌فرض

علاوه بر استفاده از DEFAULT default_value، می‌توانید یک محدودیت (Constraint) پیش‌فرض با نام مشخص نیز تعریف کنید. این روش به شما امکان می‌دهد تا در آینده به راحتی محدودیت پیش‌فرض را مدیریت (حذف یا تغییر) کنید.

ساختار افزودن ستون با یک محدودیت پیش‌فرض نام‌گذاری شده به این صورت است:

ALTER TABLE table_name ADD column_name data_type
    CONSTRAINT constraint_name DEFAULT default_expression;

constraint_name نامی است که شما برای محدودیت انتخاب می‌کنید و default_expression مقداری است که به عنوان پیش‌فرض قرار می‌گیرد.

برای مثال، اضافه کردن ستون ‘LastModifiedDate’ از نوع ‘DATETIME’ به جدول ‘Products’ با یک محدودیت پیش‌فرض به نام ‘DF_Products_LastModified’ که مقدار آن تاریخ و زمان فعلی باشد:

ALTER TABLE Products ADD LastModifiedDate DATETIME
    CONSTRAINT DF_Products_LastModified DEFAULT GETDATE();

این روش خصوصاً در محیط‌های بزرگ و پیچیده پایگاه داده مفید است، زیرا مدیریت محدودیت‌ها را سازمان‌یافته‌تر می‌کند.

نکات و بهترین روش‌ها

  • عملکرد: افزودن یک ستون NULLable به جدول با سطرهای زیاد معمولاً سریع است، زیرا SQL Server فقط فراداده (Metadata) جدول را تغییر می‌دهد و نیازی به به‌روزرسانی فیزیکی تمام سطرها ندارد. با این حال، افزودن ستون NOT NULL با مقدار پیش‌فرض، نیازمند به‌روزرسانی هر سطر موجود در جدول است تا مقدار پیش‌فرض را درج کند. این عملیات می‌تواند برای جداول بسیار بزرگ زمان‌بر باشد و باعث ایجاد قفل (Lock) روی جدول شود.
  • برنامه‌ریزی: همیشه قبل از اجرای دستورات ALTER TABLE در محیط تولید، عملیات را در محیط توسعه یا تست آزمایش کنید. این کار به شما کمک می‌کند تا مشکلات احتمالی را شناسایی کرده و تأثیر آن بر عملکرد را ارزیابی کنید.
  • فضای دیسک: افزودن ستون‌های جدید می‌تواند نیاز به فضای دیسک اضافی داشته باشد، به ویژه اگر نوع داده‌ها حجیم باشند یا ستون NOT NULL باشد و به تمام سطرها مقدار پیش‌فرض اضافه شود.
  • سازگاری با برنامه‌های کاربردی: مطمئن شوید که افزودن ستون جدید با برنامه‌های کاربردی موجود سازگار است. برنامه‌هایی که با SELECT * ستون‌ها را انتخاب می‌کنند، بدون مشکل کار خواهند کرد، اما برنامه‌هایی که ستون‌ها را به صورت صریح انتخاب می‌کنند یا به ترتیب ستون‌ها وابسته هستند، ممکن است نیاز به به‌روزرسانی داشته باشند.

“`

من علی دستجردی‌ام؛ عاشق کار با دیتا، از SQL Server تا بیگ‌دیتا و هوش مصنوعی. دغدغه‌ام کشف ارزش داده‌ها و به‌اشتراک‌گذاری تجربه‌هاست. ✦ رزومه من: alidastjerdi.com ✦

عضویت
منو باخبر کن!!!
guest
نام
ایمیل

0 دیدگاه
Inline Feedbacks
دیدن تمامی کامنتها

فوتر سایت

ورود به سایت

sqlyar

هنوز عضو نیستید؟

ورود به سایت

هنوز تبت نام نکردید ؟