PDA

View Full Version : به دست اوردن مقادیر فیلد identity



bahareee
چهارشنبه 08 اسفند 1386, 14:43 عصر
من میخوام مقادیر فیلد identity رو به دست بیارم یه کم search کردم و توابع
SCOPE_IDENTITY() و
, @@identity را پیدا کردم ولی این توابع با insert به کار میروند و فقط اخرین مقدار درج شده رو برمیگردونن. من همه مقادیر identity رو میخوام.
لطفآ منو راهنمایی کنید
ایا تابعی برای این منظور وجود داره؟؟

bahareee
چهارشنبه 08 اسفند 1386, 16:01 عصر
یه سوال دیگه :لبخندساده:
چطور میشه بیشترین مقدار فیلد identity رو به دست اورد؟؟

merlin_vista
چهارشنبه 08 اسفند 1386, 16:23 عصر
یه سوال دیگه :لبخندساده:
چطور میشه بیشترین مقدار فیلد identity رو به دست اورد؟؟


Select * From table1
Where Id =(Select Max(Id)
From table1)

AminSobati
چهارشنبه 08 اسفند 1386, 23:20 عصر
از تابع IDENT_CURRENT استفاده کنید

bahareee
شنبه 11 اسفند 1386, 00:04 صبح
استاد ممنونم از راهنماییتون

یک سوال دیگه در مورد فیلد identity دارم :
چطور میشه همه مقادیر فیلدهای table به جز مقادیر فیلد identity را select کرد
یعنی:
select * - identity feild

یعنی ایا راهی برای تشخیص فیلد identity وجود داره؟
تابعی وجود داره که فیلد identity رو برگردونه؟؟

Elham_gh
شنبه 11 اسفند 1386, 10:58 صبح
من این کد رو چون شما درخواست کردین سریع نوشتم(پیام خصوصی). مسلما راه بهتر بدون Cursor هست. که سر فرصت آنرو هم براتون می نویسم.
اگر فرض کنیم شما سوالتون در مورد جدولی به نام Person.Address باشد.کد مورد نظر شما اینگونه می شود:




SELECT C.name
INTO #tmpCols
FROM Sys.Columns C,SYS.Tables T
WHERE T.object_id=C.object_id
AND T.name='Address'
AND COLUMNPROPERTY( OBJECT_ID('Person.Address'),C.name,'IsIdentity')<>1


DECLARE _Cursor CURSOR FOR
select Name from #tmpCols
OPEN _Cursor
DECLARE @Name AS sysname,@NameS as NVARCHAR(1000)
SET @Names=''
FETCH NEXT FROM _Cursor INTO @Name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Names=@Name+','+@Names
PRINT @Names
FETCH NEXT FROM _Cursor INTO @Name
END
DECLARE @strExe AS NVARCHAR(4000)
SET @Names=LEFT(@Names,LEN(LTRIM(RTRIM(@Names)))-1)
SET @strExe ='SELECT '+@Names+' FROM Person.Address'

EXECUTE sp_executesql @strExe
CLOSE _Cursor
DEALLOCATE _Cursor


(از اینکه به پیغام خصوصیتون اشاره کردم شرمنده.اما مجبور بودم. وگرنه اخطار می گرفتم که مثلا: لزومی به گفتنش نبود!هر وقت کدی که گفتی رو می نوشتی، پیغام می ذاشتی!!!)

bahareee
شنبه 11 اسفند 1386, 14:41 عصر
(از اینکه به پیغام خصوصیتون اشاره کردم شرمنده.اما مجبور بودم. وگرنه اخطار می گرفتم که مثلا: لزومی به گفتنش نبود!هر وقت کدی که گفتی رو می نوشتی، پیغام می ذاشتی!!!)
ممنونم از راهنماییتون

با تابعی که در کد بهش اشاره کردی (
COLUMNPROPERTY)
مشکلم حل شد. مهم نیست که به پیغام خصوصی اشاره کردی
مهم اینه که تو برای حل مشکل من وقت گذاشتی و من الان چیزی میدونم که چند ساعت پیش نمیدونستم...
باز هم از شما ممنونم..