خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
نحوه استفاده از SET IDENTITY_INSERT در SQL Server
IDENTITY_INSERT در SQL Server به شما این امکان را می دهد که بتوانید در فیلد identity در یک جدول رکورد اضافه کنید. برای این منظور حتما باید IDENTITY_INSERT در وضعیت ON باشد. به طور پیش فرض IDENTITY_INSERT در وضعیت OFF است. در ادامه نحوه استفاده ازIDENTITY_INSERT را به طور تشریح خواهیم کرد.
SYNTAX استفاده از IDENTITY_INSERT به فرم زیر می باشد.
پس با این اوصاف، در ادامه با ذکر مثال قصد داریم از SET IDENTITY_INSERT استفاده کرده و سپس به ستون identity، رکورد اضافه کنیم.
در مثال زیر یک جدول با نام X ایجاد کرده و سپس فلید ID که identity است را داریم. در حالت عادی نمی توانید در چنین فیلدی خودِ کاربر بصورت دستی رکورد اضافه کند ولی در ادامه خواهیم دید که چگونه اینکار انجام می شود.
به محض ساخت جدول X، در ادامه اسکریپت، قصد داشتیم که رکوردی به جدول X اضافه کنیم و از آنجایی که ستون ID در واقع identity بود و امکان اضافه کردن رکورد بصورت دستی در آن وجود ندارد، ارور نمایش داده شد و از اینکار جلوگیری به عمل آمد.
برای اضافه کردن رکورد باید IDENTITY_INSERT در حالت ON باشد. پس بدین ترتیب از اسکریپت زیر استفاده کنید.
همانطور که مشاهده می کنید، برای فلید identity، رکورد اضافه شد.
در عبارت بالا ، ما باید نام ستون identity را مشخص کنیم وگرنه رکورد برای ستون identity را مجاز ندانسته و مجددا ارور نمایش می دهد. پس حتی اگر IDENTITY_INSERT ON باشد ولی نام ستون مربوطه در اسکریپت قید نشود، باز هم با ارور مواجه خواهید شد.
SYNTAX استفاده از IDENTITY_INSERT به فرم زیر می باشد.
[ [ database_name . ] schema_name . ] table_name { ON | OFF } SET IDENTITY_INSERT
database_name
نام دیتابیسی که جدول مورد نظر در آن قرار دارد.schema_name
نام schema ای که جددول بدان تعلق دارد.table_name
نام جدول با ستون identity می باشد.پس با این اوصاف، در ادامه با ذکر مثال قصد داریم از SET IDENTITY_INSERT استفاده کرده و سپس به ستون identity، رکورد اضافه کنیم.
در مثال زیر یک جدول با نام X ایجاد کرده و سپس فلید ID که identity است را داریم. در حالت عادی نمی توانید در چنین فیلدی خودِ کاربر بصورت دستی رکورد اضافه کند ولی در ادامه خواهیم دید که چگونه اینکار انجام می شود.
CREATE TABLE X (ID INT IDENTITY(1,1) ) ;
INSERT INTO X (ID) VALUES (1);
به محض ساخت جدول X، در ادامه اسکریپت، قصد داشتیم که رکوردی به جدول X اضافه کنیم و از آنجایی که ستون ID در واقع identity بود و امکان اضافه کردن رکورد بصورت دستی در آن وجود ندارد، ارور نمایش داده شد و از اینکار جلوگیری به عمل آمد.
برای اضافه کردن رکورد باید IDENTITY_INSERT در حالت ON باشد. پس بدین ترتیب از اسکریپت زیر استفاده کنید.
SET IDENTITY_INSERT dbo.X ON
INSERT INTO X (ID) VALUES (1);
SET IDENTITY_INSERT dbo.X OFF
همانطور که مشاهده می کنید، برای فلید identity، رکورد اضافه شد.
در عبارت بالا ، ما باید نام ستون identity را مشخص کنیم وگرنه رکورد برای ستون identity را مجاز ندانسته و مجددا ارور نمایش می دهد. پس حتی اگر IDENTITY_INSERT ON باشد ولی نام ستون مربوطه در اسکریپت قید نشود، باز هم با ارور مواجه خواهید شد.
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: