خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
نحوه افزودن چندین رکورد به صورت همزمان در یک جدول SQL Server
در این پست خواهید دید که چگونه چند رکورد را با یک دستور Insert در یک جدول بصورت همزمان اضافه کنیم. برای افزودن همزمان چند رکورد به یک جدول ، از فرم زیر دستور INSERT استفاده می کنیم:
در syntax فوق به جای استفاده از یک لیست واحد از مقادیر ، از چندین لیست مقادیر جدا شده با کاما(comma-separated lists) برای افزوده شدن استفاده می کنیم. تعداد رکوردهایی که می توانید به صورت همزمان اضافه کنید 1000 رکورد با استفاده از این فرم دستور INSERT است. اگر نیاز به درج تعداد رکوردهای بیشتری به صورت همزمان هستید باید از فرم های دیگر Insert، مثلا Bulk Insert استفاده کنید. ضمنا فرم اضافه کردن چندین رکورد به صورت همزمان در SQL Server 2008 یا نسخه های بالاتر آن پشتیبانی می شود.
ابتدا یک جدول با نام sales.promotions ایجاد می کنیم:
عبارت زیر چندین رکورد را در جدول sales.promotions اضافه می کند:
با مشاهد پیغام زیر، SQL server نشان می دهد که سه ردیف رکورد با موفقیت در جدول مربوطه اضافه شده اند.
با یک دستور Select ساده می توانید مقادیری که به جدول مربوطه اضافه کرده اید را مشاهده کنید:
در اسکریپت زیر دوباره چندین رکورد به صورت همزمان به جدول مروبطه اضافه می شوند ولی مقادیر فیلد promotion_id این چند چند رکوردی که اکنون اضافه شده اند، در خروجی بر میگردد:
در این مثال، از OUTPUT برای ستونی که می خواهیم مقدار آن در خروجی نمایش داده شود، استفاده شد. اگر می خواهید مقادیر را از چندین ستون برگردانید، باید ستون ها را به ترتیب در مقابل دستور OUTPUT درج کنید.
INSERT INTO table_name (column_list)
VALUES
(value_list_1),
(value_list_2),
...
(value_list_n);
در syntax فوق به جای استفاده از یک لیست واحد از مقادیر ، از چندین لیست مقادیر جدا شده با کاما(comma-separated lists) برای افزوده شدن استفاده می کنیم. تعداد رکوردهایی که می توانید به صورت همزمان اضافه کنید 1000 رکورد با استفاده از این فرم دستور INSERT است. اگر نیاز به درج تعداد رکوردهای بیشتری به صورت همزمان هستید باید از فرم های دیگر Insert، مثلا Bulk Insert استفاده کنید. ضمنا فرم اضافه کردن چندین رکورد به صورت همزمان در SQL Server 2008 یا نسخه های بالاتر آن پشتیبانی می شود.
ابتدا یک جدول با نام sales.promotions ایجاد می کنیم:
CREATE TABLE sales.promotions (
promotion_id INT PRIMARY KEY IDENTITY (1, 1),
promotion_name VARCHAR (255) NOT NULL,
discount NUMERIC (3, 2) DEFAULT 0,
start_date DATE NOT NULL,
expired_date DATE NOT NULL
);
عبارت زیر چندین رکورد را در جدول sales.promotions اضافه می کند:
INSERT INTO sales.promotions (
promotion_name,
discount,
start_date,
expired_date
)
VALUES
(
'2019 Summer Promotion',
0.15,
'20190601',
'20190901'
),
(
'2019 Fall Promotion',
0.20,
'20191001',
'20191101'
),
(
'2019 Winter Promotion',
0.25,
'20191201',
'20200101'
);
با مشاهد پیغام زیر، SQL server نشان می دهد که سه ردیف رکورد با موفقیت در جدول مربوطه اضافه شده اند.
(3 rows affected)
با یک دستور Select ساده می توانید مقادیری که به جدول مربوطه اضافه کرده اید را مشاهده کنید:
SELECT
*
FROM
sales.promotions;
در اسکریپت زیر دوباره چندین رکورد به صورت همزمان به جدول مروبطه اضافه می شوند ولی مقادیر فیلد promotion_id این چند چند رکوردی که اکنون اضافه شده اند، در خروجی بر میگردد:
INSERT INTO
sales.promotions (
promotion_name, discount, start_date, expired_date
)
OUTPUT inserted.promotion_id
VALUES
('2020 Summer Promotion',0.25,'20200601','20200901'),
('2020 Fall Promotion',0.10,'20201001','20201101'),
('2020 Winter Promotion', 0.25,'20201201','20210101');
در این مثال، از OUTPUT برای ستونی که می خواهیم مقدار آن در خروجی نمایش داده شود، استفاده شد. اگر می خواهید مقادیر را از چندین ستون برگردانید، باید ستون ها را به ترتیب در مقابل دستور OUTPUT درج کنید.
OUTPUT inserted.column1, inserted.column2...
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: