خانه SQL Server Identity چیست – قسمت دوم SQL Server نوشته شده توسط: مسعود طاهری ۱۱ تیر ۱۳۹۴ زمان مطالعه: 6 دقیقه ۵ (۱) مقدمه در مقاله اول از این بحث به تعریف Identity پرداختیم و همانگونه که میدانید مقدار Identity پس از درج به آن تخصیص مییابد چنانچه بخواهید به این مقدار دسترسی پیدا کنید چندین روش به ازای اینکار وجود دارد که ما در این مقاله سه روش معمول را بررسی خواهیم نمود. ۱- استفاده از متغییر سیستمی Identity@@ ۲- استفاده از تابع ()Scope_Identity ۳- استفاده از تابع Ident_Current هر سه این توابع مقدار Identity ایجاد شده برای جداول را نمایش میدهند. اما تفاوت هایی باهم دارند که در ادامه مقاله این تفاوتها بررسی شده است. متغییر سیستمی Identity@@ این متغییر سیستمی حاوی آخرین Identity ایجاد شده به ازای Session جاری شما است. لازم به ذکر است اگر به واسته Insert شما، Identity دیگری در یک حوزه دیگر (مانند یک Trigger) ایجاد شود مقدار موجود در این متغییر حاوی آخرین Identity ایجاد شده است. (یعنی Identity ایجاد شده توسط آن تریگر و نه خود جدول). لازم به ذکر است این موضوع به طور کامل در ادامه مقاله شرح داده شده است. استفاده از تابع ()Scope_Identity با استفاده از این تابع میتوانیم آخرین Identify ایجا دشده به ازای Session جاری را بدست آوریم. لازم به ذکر است مقادیر Identity ایجاد شده توسط سایر حوزهها تاثیر در مقدار بازگشتی توسط این تابع ندارد. در ادامه مقاله این موضوع به طور کامل بررسی شده است. استفاده از تابع ()ident_Current این تابع آخرین مقدار Identity موجود در یک جدول را نمایش میدهد. ذکر این نکته ضروری است که Identity ایجاد شده توسط سایر Sessionها هم روی خروجی این تابع تاثیرگذار است. چون این تابع آخرین Identity موجود در جدول را به شما نمایش میدهد و نه Identity ایجاد شده به ازای یکSession را. برای بدست آوردن یک Identityکافی است که پس از درج رکورد در جدول مورد نظر متغییر سیستمی @@Identityو یا توابع Scope_Identityو یا Ident_Currentرا همانند مثال زیر Selectکنید. USE TEMPDB GO IF OBJECT_ID(N'Employees', N'U') IS NOT NULL DROP TABLE Employees1; GO CREATE TABLE Employees ( ID int IDENTITY, FirstName NVARCHAR(50), LastName NVARCHAR(50) ) GO INSERT INTO Employees (FirstName,LastName) VALUES (N'مسعود',N'طاهری') GO SELECT @@IDENTITY AS [@@IDENTITY] SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY()] SELECT IDENT_CURRENT('Employees1') AS [IDENT_CURRENT('Employees1')] GO اما یکی دیگر از مباحث مهم درباره Identity تاثیر Scope بر مقدار Identity است (یعنی چه!) چه رتبه ای میدهید؟ میانگین ۵ / ۵. از مجموع ۱ اولین نفر باش برچسب ها # Identity چیست# SQL Server# آموزش SQL Server دانلود مقاله Identity چیست – قسمت دوم فرمت PDF 9 صفحه حجم 1 مگابایت دانلود مقاله معرفی نویسنده مقالات 28 مقاله توسط این نویسنده محصولات 55 دوره توسط این نویسنده مسعود طاهری مسعود طاهری مدرس و مشاور ارشد SQL Server & BI ، مدیر فنی پروژههای هوش تجاری (بیمه سامان، اوقاف، جین وست، هلدینگ ماهان و...) ، مدرس دورههــای SQL Server و هوشتجاری در شرکت نیکآموز و نویسنده کتاب PolyBase در SQL Server پروفایل نویسنده معرفی محصول ایمان باقری دوره آموزشی کوئری نویسی در SQL Server 2.190.000 تومان مقالات مرتبط ۰۴ مهر SQL Server دستور Case در SQL Server – قسمت اول محمد سلیم آبادی ۳۰ شهریور SQL Server استور پروسیجر (Stored Procedure) چیست؟ تیم فنی نیک آموز ۰۶ تیر SQL Server معرفی Ledger در SQL Server 2022 مسعود طاهری ۱۰ اردیبهشت SQL Server استفاده از Credential و Proxy در SQL Server Agent حسن سلیمانی دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ مهدی ۲۴ / ۰۶ / ۰۱ - ۰۹:۰۱ سلام خسته نباشین ممنون بابت این توضیحات. من از ()ident_Current: استفاده میکنم برای ثبت نرم افزار فروشگاهی برای ثبت فیشی که از ترازو فرستاده میشه و id ایجاد شده رو باید بفرستم سمت سورس که بعضی وقت ها موقعی که دو فیش هم زمان زده میشه id رو اشتباه برمیگردونه و مثلذا دو فیش که هم زمان زده شده رو id اونی که اخر ثبت شده رو برمیگردنه و این باعث میشه id ایتم ها اشتباه ثبت بشه با توضیحات شما فک کنم اگه از ()Scope_Identity استفاده کنم مشکل دیگه حل میشه پاسخ به دیدگاه mohamadi ۰۶ / ۰۲ / ۹۹ - ۱۲:۳۳ فایل pdf دانلود نمیشود پاسخ به دیدگاه آرزو محمدزاده ۰۹ / ۰۶ / ۰۰ - ۰۸:۱۵ درود بر شما فایل برررسی و بدون مشکل قابل دانلود است لطفا کش مرورگر خود را خالی کنید و یا اگر مرورگر شما کروم است ترجیحا از مرورگر دیگری اقدام به دانلود نمایید. با تشکر پاسخ به دیدگاه mohamadi ۰۶ / ۰۲ / ۹۹ - ۱۲:۳۳ فایل pdf دانلود نمیشود پاسخ به دیدگاه آرزو محمدزاده ۰۹ / ۰۶ / ۰۰ - ۰۸:۱۵ درود بر شما فایل برررسی و بدون مشکل قابل دانلود است لطفا کش مرورگر خود را خالی کنید و یا اگر مرورگر شما کروم است ترجیحا از مرورگر دیگری اقدام به دانلود نمایید. با تشکر پاسخ به دیدگاه مجتبی ۰۸ / ۰۶ / ۹۴ - ۰۹:۱۱ سلامگاهی در حین درج اطلاعات شماره آی دی ستون Identity دچار یک پرش ناگهانی می شود مثلا از شماره ۱ تا ۹ را درست می رود به جای اینکه به ۱۰ برود به ۱۰۰۰ می رود علت بروز این اشکال چیست ؟ پاسخ به دیدگاه مهدی شیشه بری ۱۷ / ۱۲ / ۹۴ - ۱۰:۵۱ دوست عزیز لطفا به لینک زیر مراجعه کنید: http://www.codeproject.com/Tips/668042/SQL-Server-Auto-Identity-Column-Value-Jump-Is پاسخ به دیدگاه مهدی شیشه بری ۱۷ / ۱۲ / ۹۴ - ۰۹:۱۸ دوست عزیز لطفا به لینک زیر مراجعه کنید: http://www.codeproject.com/Tips/668042/SQL-Server-Auto-Identity-Column-Value-Jump-Is پاسخ به دیدگاه مجتبی ۰۸ / ۰۶ / ۹۴ - ۰۹:۱۱ سلامگاهی در حین درج اطلاعات شماره آی دی ستون Identity دچار یک پرش ناگهانی می شود مثلا از شماره ۱ تا ۹ را درست می رود به جای اینکه به ۱۰ برود به ۱۰۰۰ می رود علت بروز این اشکال چیست ؟ پاسخ به دیدگاه مهدی شیشه بری ۱۷ / ۱۲ / ۹۴ - ۱۰:۵۱ دوست عزیز لطفا به لینک زیر مراجعه کنید: http://www.codeproject.com/Tips/668042/SQL-Server-Auto-Identity-Column-Value-Jump-Is پاسخ به دیدگاه مهدی شیشه بری ۱۷ / ۱۲ / ۹۴ - ۰۹:۱۸ دوست عزیز لطفا به لینک زیر مراجعه کنید: http://www.codeproject.com/Tips/668042/SQL-Server-Auto-Identity-Column-Value-Jump-Is پاسخ به دیدگاه داوود طاهرخانی ۱۰ / ۰۱ / ۹۴ - ۰۸:۱۰ خوب بود و ممنون پاسخ به دیدگاه داوود طاهرخانی ۱۰ / ۰۱ / ۹۴ - ۰۸:۱۰ خوب بود و ممنون پاسخ به دیدگاه