استفاده از sequence در SQL
با سلام و احترام
من از صبح دارم با مبحث sequence سر و کله می زنم و هی پیاده سازیش می کنم و مراحل استفاده از sequence رو هم درست طی می کنم اما به نتیجه ای نمی رسم !
مثلا شما وقتی از identity استفاده می کنید ، خودش برای اون سطر مقدار میگذاره ولی چرا موقع استفاده از sequence خودمون باید مقدار بدیم؟؟؟
شاید من درست مفهوم sequence رو نفهمیدم... نمی دونم..
ممنون میشم راهنمایی کنید..
3 پاسخ
سلام دوست عزیز، مهمترین تفاوت بین Identity و Sequence هست در این هست که ستون های Identity به صورت مستقیم مربوط به یک جدول خاص هست، اما Sequence ها می تونن بین چندین جدول مشترک باشن، برای مثال وقتی که شما یک Sequence تعریف می کنید:
CREATE SEQUENCE IdSquence START WITH 1 INCEREMENT 1; GO
حالا شما می تونید بین چند جدول از یک SEQUENCE استفاده کنید:
INSERT INTO Users ([Id],[Username]) VALUES (NEXT VALUE FOR IdSequence, N'Hossein'); INSERT INTO Websites ([Id],[Address]) VALUES (NEXT VALUE FOR IdSequence, N'http://tosinso.com');
همچنین ایجاد مقادیر Sequence از Identity با سرعت بیشتری انجام میشه.
به یه نکته توجه کنید، مقدار Default Value زمانی استفاده میشه که شما مقداری برای ستون مورد نظر وارد نکنید، در صورتی که مقداری وارد بشه، Default Value مورد استفاده قرار نمیگیره.
با تشکر از شما..
سوال من این هست که این عبارت next value for رو می تونیم در هنگام design کردن جدول در قسمت default value اون ستونی که می خواهیم براش sequence رو استفاده کنیم بنویسم درسته؟ اما چرا موقع data entry کردن به صورت خودکار عدد وارد نمیشه در اون ستون؟ و این که موقع وارد کردن داده برای اون ستون من مقداری بالاتر از حد مجاز هم می دم و هیچ خطایی دریافت نمی کنم!