PDA

View Full Version : اعمال نشدن SET IDENTITY_INSERT



bahareee
سه شنبه 07 اسفند 1386, 15:19 عصر
من از کد زیر برای disable کردن identity استفاده میکنم ول اعمال نمیشه؟؟؟!!!!


SETIDENTITY_INSERT tblname off


میشه منو راهنمایی کنید؟

nasseritemp
سه شنبه 07 اسفند 1386, 16:46 عصر
ببینید که Set Identity رو بافاصله نوشتید یا نه؟


SET IDENTITY_INSERT tblName Off

اگه درست نوشته باشید احتمالا قبلا اونرو به off ست کردید...

AminSobati
چهارشنبه 08 اسفند 1386, 00:10 صبح
اگر پیغام خطا دریافت میکنید، پست کنین

bahareee
چهارشنبه 08 اسفند 1386, 08:51 صبح
اگر پیغام خطا دریافت میکنید، پست کنین

با عرض سلام خدمت استاد
پیغام خطا دریافت نمی کنم ولی وقتی بعد از این کد داخل جدول insert میکنم وبرای فیلدی که identity بود مقدار میدم این پیغام رو میده:

An explicit value for the identity column in table 'tblname' can only be specified when a column list is used and IDENTITY_INSERT is ON.

bahareee
چهارشنبه 08 اسفند 1386, 08:56 صبح
ببینید که Set Identity رو بافاصله نوشتید یا نه؟


SET IDENTITY_INSERT tblName Off

اگه درست نوشته باشید احتمالا قبلا اونرو به off ست کردید...

Set Identity با فاصله هست.
راه دیگه ای برای disable کردن identity وجود نداره؟؟

Elham_gh
چهارشنبه 08 اسفند 1386, 10:14 صبح
Set Identity با فاصله هست.
راه دیگه ای برای disable کردن identity وجود نداره؟؟

شما باید اون روON کنید نه OFF !!!!




SET IDENTITY_INSERT tblName ON

bahareee
چهارشنبه 08 اسفند 1386, 10:36 صبح
شما باید اون روON کنید نه OFF !!!!




SET IDENTITY_INSERT tblName ON


من میخوام به فیلدی که identity هست مقدار بدم . بنابراین باید اول identity رو disable کنم(off) با کمی search تونستم این کد و پیدا کنم
حتی اگه identity on باشه هم همین پیغامو میده...
یعنی پیغامهای دو query زیر مثل همه :


SETIDENTITY_INSERT tblnameon
insertinto tblnamevalues('ff',8)




SET IDENTITY_INSERT tblnameoff
insertinto tblname values('ff',8)

Elham_gh
چهارشنبه 08 اسفند 1386, 12:33 عصر
دوست عزیز دستور
SET IDENTITY_INSERT tblName ON
یعنی امکان INSERT در فیلد Identity را ON کن
این دستور را اجرا کنید بعد می توانید در فیلد IDENTITY عمل INSERT را انجام دهید.تنها یک فرق هست بعد ON کردن حتما باید در دستور INSERT اسم فیلدها رو بیارید.مثلا جدولی داریم با ساختار زیر:


CREATE TABLE [dbo].[Student](
[StudentID] [int] IDENTITY(1,1) NOT NULL,
[FName] [nchar](10) ,
[LName] [nchar](10)
) ON [PRIMARY]


برای INSERT کردن در فیلد IDENTITY:



SET IDENTITY_INSERT student ON

INSERT INTO student(StudentID,FName,LName)
VALUES(5,'ALi','Rezaie')


و کد زیر Error می دهد:


SET IDENTITY_INSERT student ON

INSERT INTO student
VALUES(5,'ALi','Rezaie')

bahareee
چهارشنبه 08 اسفند 1386, 13:03 عصر
از همه ممنونم
مشکل مشخص نکردن نام فیلدها بعد از on کردن identity_insert بود