آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

جدول INSERT INTO SQL Server با ستون IDENTITY

دوره های مرتبط با این مقاله

جدول INSERT INTO SQL Server با ستون IDENTITY

در جدول dbo.Customer که طرح کلی آن را در این آموزش ارائه دادیم، ستون CustomerID یک identity ( ماهیت) می باشد. در اینجا توضیحاتی مربوط به ستون را مشاهده می کنید که قبلا ارائه دادیم:

  • برای ستون CustomerID، "IDENTITY(1,1)"تعیین شده است. این امر به این معناست که هر ردیفی که وارد جدول می شود، SQL Server این مقدار را به طور خودکار به اندازه یک واحد افزایش می دهد که از عدد یک شروع می شود.
  • اینجا نکته ی جالبی وجود دارد، زیرا زمانیکه شروع به نوشتن عبارت INSERT خود می کنیم، باید اطمینان حاصل کنیم که این ستون را وارد نخواهیم کرد، زیرا SQL Server آن را برای ما مدیریت خواهد کرد.

بنابراین اگر بخواهیم رکوردی با یک CustomerID مشخص وارد کنیم، چه اتفاقی خواهد افتاد؟ اجازه بدهید بگوییم که یک مشتری اشتباها پاک شد و شما می خواهید CustomerID اصلی آن را مجددا بازگردانید. چه کاری باید انجام دهید؟ اگر رکوردی شبیه آنچه در مثال های بالا داشتیم، وارد کنید بزرگترین عدد بعدی، و نه مقدار اصلی، وارد می شود. اجازه بدهید مثال زیر را چک کنیم تا چگونگی حل این موضوع را توضیح دهیم.

توضیحات

اجازه بدهید کد زیر را توضیح دهیم:

  • بخش 1 – عبارت ساده ی SELECT برای بازگرداندن همه ی داده از جدول dbo.Customer.
  • بخش 2 – یک رکورد مجزا را از جدول dbo.Customer پاک کنید.
  • بخش 3 – عبارت Simple SELECT برای بازیابی همه ی داده از جدول dbo.Customer
  • بخش 4 – عبارت Simple INSERT با شکست رو برو می شود، زیرا یک مقدار صریح و روشن را نمی توان به یک جدول با ستون هویت وارد کرد، زمانی که IDENTITY_INSERT به OFF تنظیم است که تنظیمات پپیش فرض می باشد.
  • MSG 544 ، سطح 16، وضعیت 1، خط 1
    نمی تواند مقدار صریح و روشن برای ستون هویت در جدول 'Customer' وارد کند، زمانیکه IDENTITY_INSERT به OFF تنظیم شده باشد.
  • بخش 5 – همان عبارت ساده ی وارد شده مانند بخش بالا به علاوه ی منطق IDENTITY_INSERT تا به یک مقدار واضح و روشن اجازه ی وارد شدن به جدول dbo.Customer را بدهد.
  • بخش 6 – عبارت Simple SELECT برای بازیابی همه ی داده از جدول dbo.Customer برای تایید فرمان INSERT در بخش 5 موفق بود.
‎-- 1 - Retrieve all of the data ‎
‎-- from the dbo.Customer table
SELECT * ‎
FROM dbo.Customer;‎
GO
 
‎-- 2 - Delete a single record
DELETE ‎
FROM dbo.Customer
WHERE CustomerID = 1;‎
GO
 
‎-- 3 - Verify the record was deleted
SELECT * ‎
FROM dbo.Customer;‎
GO
 
‎-- 4 - Insert the deleted record
‎-- Insert fails
INSERT INTO [dbo].[Customer]‎
‎ ([CustomerID]‎
‎ ,[FirstName]‎
‎ ,[LastName]‎
‎ ,[PhoneNumber]‎
‎ ,[EmailAddress]‎
‎ ,[Priority]‎
‎ ,[CreateDate])‎
VALUES
‎ (1‎
‎ ,'Jonah'‎
‎ ,'Hook'‎
‎ ,'777-777-7777'‎
‎ ,'jonah@neverdull.com'‎
‎ ,1‎
‎ ,'2011-09-01');‎
GO
 
‎-- 5 - Insert the deleted record
‎-- Insert succeeds
SET IDENTITY_INSERT [dbo].[Customer] ON
INSERT INTO [dbo].[Customer]‎
‎ ([CustomerID]‎
‎ ,[FirstName]‎
‎ ,[LastName]‎
‎ ,[PhoneNumber]‎
‎ ,[EmailAddress]‎
‎ ,[Priority]‎
‎ ,[CreateDate])‎
VALUES
‎ (1‎
‎ ,'Jonah'‎
‎ ,'Hook'‎
‎ ,'777-777-7777'‎
‎ ,'jonah@neverdull.com'‎
‎ ,1‎
‎ ,'2011-09-01');‎
SET IDENTITY_INSERT [dbo].[Customer] OFF
GO
 
‎-- 6 - Verify the data
SELECT * ‎
FROM dbo.Customer;‎
GO
  • 3328
  •    788
  • تاریخ ارسال :   1394/07/27

دانلود PDF دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .