PDA

View Full Version : دریافت مقدار کلید بعد از ثبت



fakhravari
یک شنبه 08 بهمن 1391, 22:56 عصر
با سلام
دوستان من از SP استفاده نمیکنم با دستور SELECT SCOPE_IDENTITY()
مقدار identity میگیرم .
الان من فیلد کلیدم identity تیست و میخواهم بعد از ثبت مقدار کلید SELECT کنم

محمد سلیم آبادی
یک شنبه 08 بهمن 1391, 23:20 عصر
پیشنهاد میکنم کمی هم با ماده ی output آشنا بشین. البته قبلا هم دیگران اشاره ای داشتن.
فرض کنید جدولی داریم که می خواهیم مقدار یکی از ستون هایش را بعد از Insert انتخاب کنیم. برای این منظور قبل از دستور values یا select ماده output را می نویسیم و با کمک پیشوند inserted به نام ستون مورد نظر دسترسی خواهیم داشت. به مثال زیر توجه کنید:
declare @t table
(i int)

insert @t
output inserted.i
select 1 union
select 2 union
select 3

insert into @t
output inserted.i
values(10)

در مثال اول من چند سطر را الحاق و سپس insert کردم. مثال دوم بر اساس syntax معمولی insert است.

fakhravari
چهارشنبه 11 بهمن 1391, 11:40 صبح
DELETE from morabi where idmorabi = 1
output DELETED.*;
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near 'output'.

fakhravari
چهارشنبه 11 بهمن 1391, 11:41 صبح
DELETE from morabi
OUTPUT deleted.*
where idmorabi = 1

fakhravari
چهارشنبه 11 بهمن 1391, 11:52 صبح
INSERT INTO [morabi]([idmorabi],[mname],[mfamily])
OUTPUT inserted.*
VALUES(12,'q','a')