View Full Version : استفاده از دستور insert و update
kochol
جمعه 28 مرداد 1384, 13:56 عصر
سلام
من می خواهم که وقتی ایتم جدیدی به جدولم اضافه شد id اون در یک جدول دیگه آپدیت بشه
مشکلم اینجاست که از کجا بفهمم که id این ایتم جدید چی بوده
Behrouz_Rad
جمعه 28 مرداد 1384, 13:59 عصر
آیا این ID به شکل AutoNumber ایجاد میشه یا به صورت دستی؟
kochol
جمعه 28 مرداد 1384, 14:15 عصر
به شکل AutoNumber
Behrouz_Rad
جمعه 28 مرداد 1384, 17:51 عصر
Select Max(myAutoNumField)
kochol
جمعه 28 مرداد 1384, 19:12 عصر
سلام
چون این یه برنامه asp.net هست امکان داره مشکلی پیش بیاد اگر چند کاربر با هم رکودهایی رو اضافه کنن
AminSobati
جمعه 28 مرداد 1384, 22:42 عصر
سلام
چون این یه برنامه asp.net هست امکان داره مشکلی پیش بیاد اگر چند کاربر با هم رکودهایی رو اضافه کنن
درسته. باید SELECT @@IDENTITY انجام بدین. متغیر IDENTITY@@ برای هر کاربر جداگانه عمل میکنه و چنانچه کاربرها همزمان Insert انجام بدن، هر کاربر IDENTITY@@ مربوط به خودشون رو دریافت میکنند.
در صورت تمایل،() SCOPE_IDENTITY و IDENT_CURRENT رو هم مطالعه بفرمایید
Behrouz_Rad
جمعه 28 مرداد 1384, 23:02 عصر
کاملا درسته.
http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif
http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif
kochol
شنبه 29 مرداد 1384, 13:24 عصر
سلام
خیلی ممنون از راهنماییتان
INSERT INTO TY (score) VALUES (5)
UPDATE TZ SET id2 = (SELECT @@IDENTITY) WHERE id=1
kochol
یک شنبه 30 مرداد 1384, 15:51 عصر
سلام
خواستم ببینم کد بالا درست جواب نمی ده چون یه نفر به من گفت از این کد استفاده کن
اگر خواستی در جدول اول ثبت اطلاعات داشته باشی و مقدار AutoNumber آنرا خوانده و جدول دوم را ویرایش یا ثبت کنی بهتر است که از طریق Transaction این کار را انجام دهی
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION
(INSERT INTO TY (score) VALUES (5
UPDATE TZ SET id2 = @@IDENTITY WHERE id=1
IF @@ERROR0
ROLLBACK TRAN
ELSE
COMMIT TRAN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
AminSobati
یک شنبه 30 مرداد 1384, 22:41 عصر
زمانی که چند عمل ویرایش، به هم وابسته هستند بطوریکه اگر یکی از اونها Fail شد، بقیه هم میبایست Undo بشن، کار صحیح اینه که داخل Transaction قرار بدین. اما به این معنی نیست که هر جا از IDENTITY@@ استفاده کردین، الزاما BEGIN TRAN داشته باشید
kochol
سه شنبه 01 شهریور 1384, 20:24 عصر
سلام
آخه اسشون می گفتند که Identity@@ برای هر کاربر مجزا نیست
AminSobati
سه شنبه 01 شهریور 1384, 23:43 عصر
دقیقا منظورتون چیه؟
kochol
چهارشنبه 02 شهریور 1384, 14:12 عصر
سلام
می خواستم بدونم Identity@@ برای هر کاربر مجزا هست یا نه؟
AminSobati
چهارشنبه 02 شهریور 1384, 22:31 عصر
وقتی کاربر بتونه Insert کنه، از این متغیر هم میتونه Select کنه
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.