معرفی دو DataType در SQL
بسم الله الرحمن االرحیم
آموزش SQL Server
Timestamp
در بعضی مواقع نیاز است شما اطلاعات درون یک پایگاه داده را به صورت Mirror ذخیره کنید، یعنی ما یک پایگاه داده اصلی و یک پایگاه داده پشتیبان داریم که اطلاعات بر روی پایگاه داده اصلی RW می شود و نسخه ای از آن نیز بر روی پایگاه داده دوم بایگانی می شود. خوب فکر کنید این کار را در سطح بسیار کوچکتر و فقط بر روی یک جدول در یک پایگاه داده انجام دهید یعنی اطلاعات این جدول با ارزش بوده و می خواهید به صورت ساده هر تغییری که در اطلاعات جدول شماره یک صورت گرفت بر روی جدول شماره دو انجام شود. راه حل؟
خوب بعضی ها اولین راه را انتخاب می کنند یعنی هر عملیات CUD را بروی جدول شماره یک اگر صورت گرفت بر روی جدول شماره دو نیز همان کار را تکرار می کنند، خوب است.
خوب راه دیگر استفاده از فیلد TimeStamp است که مقدار باینری را در خود نگه می دارد، در صورتی که مقدار رکورد عوض شود مقدار باینری این فیلد نیز عوض خواهد شد
پس اگر بخواهید متوجه شوید که مثلا بر روی رکورد شما توسط کاربر تغییری صورت گرفته می توان با مشاهده مقدار این فیلد، به این جواب برسید مثال:
شاید به نظر دوستان این مطلب خیلی ابتدایی ساده است، اما بسیار مفید خواهد بود وقتی بدانید چه کاربردهای وسیعی در پایگاه داده های توزیع شده دارد.
مابقی داستان و استفاده از این فیلد به عهده خودتان
SQL_Variant
معادل object در سی شارپ است و توانایی ذخیره انواع مختلف دیتا را به جز موارد زیر دارا است و سایز آن 8016 بایت است
TimeStamp
Varbinary(max)
Varchar(max)
Nvarchar(max)
مثال:
DECLARE @var SQL_Variant = 'ESH'
IF(SQL_VARIANT_PROPERTY(@var,'BaseType')='int')
BEGIN
print '@var type is int'
END
ELSE
BEGIN
declare @TYPE SQL_Variant
SET @TYPE = SQL_VARIANT_PROPERTY(@var,'BaseType')
select @TYPE AS typeOfVar
END