ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

۳۱ مطلب با کلمه‌ی کلیدی «آموزش SQL» ثبت شده است

حذف تمام پروسیجر ها

بسم الله الرحمن الرحیم

حذف کردن تمامی پروسیجر ها

برای دوستان عزیز که در تیم طراحی پایگاه داده SQL فعالیت می کنند مطلبی را آماده کردم که انشالله مفید واقع شود.

 برای حذف تمامی پروسیجر های موجود در یک پایگاه داده کافی است که کد زیر را اجرا کنید تا تمامی پروسیجر های شما

حذف شوند.می توان این دستور را به صورت یک پروسیجر ذخیره کنید تا در مواقع نیاز از آن استفاده کنید و در نهایت کد ما

به این صورت می شود.

 

ادامه مطلب...

انتقال اطلاعات Database در MVC

بسم الله الرحمن الرحیم

بسیاری از مواقع شما نیاز دارید اطلاعات درون پایگاه داد خود را به پایگاه داده دیگری انتقال دهید.

در مطلب تبدیل اطلاعات یک SQL Server به نسخه SQL Server پایین تر  نحوه انتقال اطلاعات را از یک نسخه جدید SQL Server به نسخه های قدیمی تر توضیح دادیم. در مطلب بالا توضیح دادیم چطور می توانید فقط اطلاعات و داده های درون پایگاه داده را بدون ساختار پایگاه داده (مانند کدهای تولید View,Table و...) انتخاب کنید.

آموزش انتقال اطلاعات Database در MVC

ادامه مطلب...

معرفی 5 زبان برنامه نویسی برتر در سال 2014

بسم الله الرحمن الرحیم

روند زبان های برنامه نویسی همواره در حال تغییر است. هر روز یک تکنولوژی جدید و یک راه حل ارائه می شود و همچنین ساختارها به سرعت در حال تغییر هستند. یکی از اهدافی که به دنبال آن هستیم بر روز رسانی سطح علمی شما دوستان عزیز است. از این رو جالب است با 5 زبان برتر برنامه نویسی در سال 2014 آشنا شوید، هر چند سبک و سیاق کار در ایران واقعا با سایر کشورها بسیار متفاوت است.

5 زبان برنامه نویسی برتر سال 2014

مانیتور کردن SQL Server و ساخت برنامه ی Real Time

بسم الله الرحمن الرحیم



در این آموزش قصد دارم شما را با یکی دیگر از ویژگی های SQL Server آشنا کنم. متاسفانه بسیاری از افراد فکر می کنند SQL Server فقط یک ابزار برای نگهداری اطلاعات است! و از بسیاری از سرویس های SQL Server بی خبر هستند.

آموزش مانیتورینگ SQL Server و ثبت تغییرات ایجاد شده

SqlDependency

کلاس SqlDependency و Query notifications ابزارهایی هستند که به شما اجازه می دهند SQL Server را مانیتور کنید این ابزار ها در SQL Server 2005 ارائه شدند.

Query Notifications

Query Notifications به برنامه شما اجازه می دهد در صورتی که داده ای در دیتابیس تغییر داده شد، از این تغییر اطلاع پیدا کند.
هدف این کلاس ذخیره کردن اطلاعاتی جدیدی است که مداوم در دیتابیس ایجاد می شود.


اگر شما بخواهید این کار را بدون استفاده از این سرویس انجام دهید باید یک تایمر داشته باشید که در بازه های زمانی معین اطلاعات را بررسی و در صورتی که تغییری ایجاد شد این اطلاعات را برای شما ارسال کند که تعیین این تغییر خود امری دشوار خواهد بود، اگر بخواهیم ساده بگوییم شما کاری را که SQL Server قبلا انجام داده و آن را بهینه کرده است می خواهید انجام دهید!

قبلا در مباحث دیگرSQL Server Broker را توضیح داده ام، در اینجا نیز برای استفاده از این سرویس باید از Service Broker و QUEUE استفاده کنید.

ادامه مطلب...

فعال کردن قابلیت Remote به SQL Server

بسم الله الرحمن الرحیم

ممکن است شما بخواهید بر روی SQL Server خود این امکان را قرار دهید تا بتوانید بیرون از سرور به SQL Server دسترسی داشته باشید.

برای این کار چند لینک مفید را به شما معرفی می کنم

http://msdn.microsoft.com/en-us/library/cc646023.aspx

http://cs.thomsonreuters.com/ua/toolbox/cs_us_en/kb/k73037522.htm


http://www.mssqltips.com/sqlservertip/1929/configure-windows-firewall-to-work-with-sql-serve

آموزش ساخت Connection String

بسم الله الرحمن الرحیم

یک راه ساده برای ایجاد و تست Connection String امروز فرا خواهید گرفت.

برای شروع کافی است در دسکتاپ خود کلیک راست کنید و گزینه new را انتخاب و سپس یک فایل Text Document ایجاد کنید حال پسوند فایل ایجاد شده را به UDL تغییر دهید (یادتان باشد باید پسوند فایلها را ابتدا از طریق Control Panel -> Folder Options -> View گزینه Hide extensions for known file type را غیر فعال کنید ). حال بر روی فایل دابل کلیک کنید تا باز شود و به ترتیب می توانید مشخصات نام سرور خود، نام کاربری و کلمه عبور سرور خود و در نهایت انتخاب پایگاه داده خود را انجام دهید.

در نهایت پس از تکمیل اطلاعات بر روی گزینه Test Connection  کلیک کنید تا مطمن شوید یک کانکشن صحیح ایجاد شده است.

برای استفاده از Connection String تولید شده می توانید بر روی فایل کلیک راست کنید و آن را دریک برنامه مثل Notepad باز کنید و از اطلاعات آن استفاده کنید.

آموزش Code First Data Annotations - بخش دوم

بسم الله الرحمن الرحیم

 برای مشاهده سایر بخش های دوره آموزش Code First Data Annotations از طریق لینکهای زیر اقدام نمایید.

بخش اول

بخش دوم

بخش سوم

بخش چهارم

بخش دوم

ComplexType

نوع های پیچیده

ممکن است شما یک نوع غیر معمول برای فیلد های خود بخواهید تعریف کنید، این نوع شما ممکن است یک کلاس باشد، مثلا کلاس زیر را در نظر بگیرید:

public class BlogDetails 
{
    public DateTime? DateCreated { get; set; }
 
    [MaxLength(250)]
    public string Description { get; set; }
}

ادامه مطلب...

آموزش Code First Data Annotations

بسم الله الرحمن الرحیم

 برای مشاهده بخش های دوره آموزش Code First Data Annotations از طریق لینکهای زیر اقدام نمایید.

بخش اول

بخش دوم

بخش سوم

بخش چهارم

آموزش Code First

بخش اول

Data Annotations

در طراحی پایگاه داده به وسیله Entity Framework  در MVC برای مشخص کردن خصوصیت های جداول و فیلدها می بایست از خاصیتی به نام Data Annotations استفاده کنید. کار با این خصوصیت بسیار ساده می باشد.
ما دو کلاس را برای پروژه خود نیاز داریم، این دو کلاس را با نام های Blog.cs و Post.cs در فولدر Model پروژه MVC خود ایجاد می کنیم و کد های زیر را در آن ها قرار می دهیم.

public class Blog 
{
public int Id { get; set; }
public string Title { get; set; }
public string BloggerName { get; set;}
public virtual ICollection<Post> Posts { get; set; }
}

public class Post
{
public int Id { get; set; }
public string Title { get; set; }
public DateTime DateCreated { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public ICollection<Comment> Comments { get; set; }
}

Key 

تعیین کلید اصلی جداول

Entity Framework برای ایجاد کلید اصلی جدول شما در دیتابیس، در مدلی که طراحی کردید به دنبال نام Id و یا نام کلاس شما به علاوه کلمه Id (مثلا BlogId) می گردد، هر یک از این دو پراپرتی در صورتی که در کلاس شما وجود داشته باشد تبدیل به کلید اصلی در جدول پایگاه داده می شود.

در صورتی که هیچ یک از این دو کلمه در کلاس مدل شما وجود نداشته باشد Entity Framework یکexception  برای این مورد throw می کند. برای حل این مشکل کافی است از خاصیتی به نام [Key]در بالای فیلد کلید خود استفاده کنید.
مثلا ما می خواهیم در اینجا نام کلید اصلی خود راPrimaryTrackingKey قرار دهیم پس باید کد خود را به صورت زیر تغییر دهیم.

ادامه مطلب...

خطای cycles or multiple cascade paths

بسم الله الرحمن الرحیم

خطای زیرا شاید خیلی از شما دوستان عزیز نیز مشاده کردید:

Introducing FOREIGN KEY constraint 'FK_dbo.aspnet_UsersInRoles_dbo.aspnet_Users_UserId' on table 'aspnet_UsersInRoles' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints. Could not create constraint. See previous errors

برای حل این مشکل می توانید از Fluid API استفاده کنید،

در این مثل اگر من کد زیر را به Context خود اضافه کنم مشکل بالا برطرف خواهد شد:

protected override void OnModelCreating( DbModelBuilder modelBuilder )
{

        modelBuilder.Entity<aspnet_UsersInRoles>().HasMany(i => i.Users).WithRequired().WillCascadeOnDelete(false);
}

همچنین با استفاده از این کد می توانید تمامی CASCADE DELETES ها را از بین ببرید:

modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();

اینم مشکل زمانی رخ می دهد که شما در طراحی دیتابیس خود یک چرخه یا Loop ایجاد کرده اید مانند تصویر زیر:

multiple cascade

اگر به متن خطای بالا دقت کنید مشاهده خواهید کرد که عبارت may cause cycles or multiple cascade paths قید شده است، همان طور که خدمتتان عرض کردم، اگر در طراحی دیتابیس شما چندین جدول را به صورت بالا طراحی کنید که با یکدگیر در ارتباط باشند و این ارتباط به صورت یک چرخه شود، و سعی کنید بر روی این چرخه CASCADE ایجاد کنید، SQL Server نمی تواند متوجه بشود که چطور فرایند بروز رسانی Update CASCADE یا حذف Delete CASCADE شما را مدیریت کند زیرا هر یک از این جداول بر روی یکدیگر تاثیر می گذارند و در صورتی که فرایند CASCADE آغاز شود نقطه پایانی وجود نخواهد داشت.

Delete CASCADE و Update CASCADE

برای حل این مشکل می توانید به صورت زیر عمل کنید:

1- فرایند CASCADE را غیر فعال کنید (در صورت غیر فعال کردن باید این فرایند را به صورت Manually مدیریت کنید)

2- Relation را حذف کنید (در صورت حذف کردن باید این فرایند را به صورت Manually مدیریت کنید)

طراحی دیتابیس

در چنینی شرایطی معمولا طراح دیتبیس اشتباهی را مرتکب شده است، پس بهتر است از او بخواهید تا دیتابیس خود را مجددا بررسی کنید، زیرا مدیریت کردن راه حل های بالا که قید شد کمی دقت لازم دارد

انشالله در اولین فرصت روش های ایجاد Relation را در MVC معرفی خواهم کرد

Entity Farmework و Code First

بسم الله الرحمن الرحیم

 

برای طراحی پایگاه داده به وسیله Entity Farmework  و Code First بهتر است این چند نکته را رعایت فرمایید:

 

بهتر است از نام Id به عنوان نام تمامی کلید های اصلی جداول استفاده کنید هر چند در بحث

convention over configuration این نکته مورد قبول است اما چیزی را که همه آن را به عنوان یک قرارداد نانوشته قبول دارند را عوض نکنید تا برای انجام کار توضیحاتی لازم نباشد.

بهتر است از نوع GUID برای کلید های اصلی جداول استفاده کنید. نوع int از لحاظ واکشی اطلاعات سریعتر است زیرا مقایسه عددی سریعتر از مقایسه رشته ای است.

باید در نظر داشته باشید در جداولی مثل شهر، استان، کشور می توانید از نوع int برای کلید اصلی استفاده کنید و هیچ مشکلی نخواهد بود اما بهتر است برای جداول اطلاعاتی که شماره ها بسیار ارزشمند هستند و بهتر است در کل دیتابیس عدد منحصر به فرد باشد از نوع GUID استفاده شود.

بهتر است نام کلیدهای خارجی یک نام از جدول + کلمه ای دی باشد:

مثلا: ProductId

برای تعیین نامی مشخص برای ذخیره property ها در دیتابیس می توانید به صورت زیر عمل کنید:

 

 [Column(“ProductId", TypeName="Guid")] 

 

با توجه به اینکه در MVC به صورت پیش فرض اگر Maxlength برای یک Property String تعیین نشود nvarchar(MAX) در دیتابیس در نظر گرفته می شود، لذا برای تمامی Property مقدار Maxlength را تعریف کنید مگر در شرایطی که نیاز به رشته های طولانی دارید.

با توجه به نحوه ذخیره سازی رشته ها در SQL Server ، اگر یک رشته می تواند در نوع nvarchar(300)  ذخیره شود از این نوع استفاده کنید.

با توجه به اینکه در Entity Framework 6 از روی نوع enum فیلد مناسب در دیتابیس ساخته می شود اما بهتر است فیلدهای از نوع enum به صورت int تعریف شوند و شما خودتان نوع بازیابی شده از دیتابیس را به enum تبدیل کنید.

مثلا

Public int CustomerType {get; set;};

 در نام گذاری property ها این نکته را در نظر داشته باشید که نباید از کلمات کلیدی (SQL Server,Oracle,…) استفاده کنید

مثلا: [Order]

 

بازیابی دیتابیس (Restore) به وسیله EntityFarmework

بسم الله الرحمن الرحیم

در پروژه های MVC شما نیاز خواهید پیدا کرد که دیتابیسی که به وسیله Entity Framework (معمولا در روش Code First) تغییر پیدا کرده است را به حالت قبل بازیابی کنید.

به ازای هر بار درخواست تغییر دیتابیس توسط EF یک شماره منحصر به فرد ایجاد می شود که می توانید در دیتابیس خود در تیبل Migration__  این پارت ها را مشاهده کنید.

برای برگرداندن دیتابیس خود به مرحله قبل می توانید به صورت زیر عمل کنید:

Update-Database -Target 2556

2556 شماره حالتی است که قبل از اعمال تغییرات ثبت شده بوده است.

برای رفتن اولین مرحله نیز می توانید به صورت زیر عمل کنید:

Update-Database -Target 0



using کردن و LifeTime Object

بسم الله الرحمن الرحیم

بسیاری مواقع وجود دارد که شما در بدنه تابع خود یک متغییر یا یک شی از کلاس را تعریف می کنید اما کار شما با این متغییر در چندین خط به پایان می رسد اما این متغییر یا شی شما در هنوز در حافظه وجود دارد، این مشکل در کلاس هایی که در فضای نامی متفاوت از فضای نامی فعلی شما وجود دارد بسیار حائز اهمیت است برای حل این مشکل کافی است که به صورت زیر عمل کنید:

using System;
using System.Data.SqlClient;
///
public class A {
   ///
   public static void Main() {
      string connectionString = "";
      // Wait for 5 second delay in the command
      string queryString = "waitfor delay '00:00:05'";
      using (SqlConnection connection = new SqlConnection(connectionString)) {
         connection.Open();
         SqlCommand command = new SqlCommand(queryString, connection);
         // Setting command timeout to 1 second
         command.CommandTimeout = 1;
         try {
            command.ExecuteNonQuery();
         }
         catch (SqlException e) {
            Console.WriteLine("Got expected SqlException due to command timeout ");
            Console.WriteLine(e);
         }
      }
   }
}

همانطور که مشاهده می کنید با استفاده از دستور using  می توانیم میدان فعالیت یک شی را به سادگی مشخص کنیم.

تغییر دادن مقدار Timeout در SqlCommand

بسم الله الرحمن الرحیم

در بعضی اگر شما بخواهید یک دستور اسکیوال را از طریق سی شارپ فراخوانی کنید که مدت زمان اجرای آن دستور بسیار طولانی باشد با خطای زیر مواجه می شوید:

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. The statement has been terminated

برای حل این مشکل شما باید مدت زمان Timeout را در SQL Command افزایش دهید و یا این پارامتر را غیر فعال کنید.

به صورت پیش فرض مدت زمان CommandTimeout در SqlCommand برابر با 30 ثانیه می باشد که شما می توانید به صورت زیر آن را تغییر دهید

SqlCommand sqlCommand= new SqlCommand("select * from table_EduOnline");

SqlCommand.CommandTimeout = 100;//100 secound

و یا با مساوی قرار دادن CommandTimeout برار با 0 آن را غیر فعال کنید

SqlCommand.CommandTimeout = 0;// disable

با استفاده از دستور Delay  می توانید این خاصیت را تست کنید، مثال:

  static void Main(string[] args)

        {

            string cString = @"Data source=<your server>;Integrated Security=SSPI;Initial Catalog=Northwind";

            using (SqlConnection sc = new SqlConnection(cString))

            {

                try

                {

                    SqlCommand cmd = new SqlCommand("waitfor delay '00:00:30';select * from Shippers", sc);

                    cmd.CommandTimeout = 10;

                    Console.WriteLine("CommandTimeout: {0}", cmd.CommandTimeout);

                    sc.Open();

                    SqlDataReader r = cmd.ExecuteReader();

                    while (r.Read())

                        Console.WriteLine("{0} : {1}", r[0].ToString(), r[1].ToString());

                    sc.Close();

                }

                catch (SqlException se)

                {

                    Console.WriteLine(se);

                }

            }

        }

معرفی OLAP و OLTP

بسم الله الرحمن الرحیم

آموزش OLAP و OLTP

با توجه به تکنولوژی های مرتبط در خصوص طراحی و پیاده سازی پایگاه داده ها برای استفاده از سرویس های تحلیلی می توان این پایگاه داده را به دو

دسته کلی تقسیم کرد:

OLAP: همان طور که از نام این گروه مشخص است این پایگاه داده ها برای تحلیل و بررسی مورد استفاده قرار می گیرند که طبیعتا طراحی و ساختار آن با پایگاه داده های معمولی متفاوت خواهد بود. مثلا در طراحی این پایگاه داده ها از ایندکس های بیشتری استفاده می شود که سرعت واکشی و دسترسی به اطلاعات افزایش می یابد اما در عین حال سرعت درج و بر روز رسانی کاهش یافته که این مسئله باعث می شود همین کار در پایگاه داده های OLTP مناسب نباشد. معمولا این پایگاه داده را با کلمه DW خاتمه می یابند. DW مخفف عبارت Data warehouse می باشد که بیانگر پایگاه داده هایی است که برای تحلیل طراحی شده اند

OLTP: این پایگاه داده ها، همان پایگاه داده های اصلی هستند که طبیعتا هر مهندس DBA آن را برای بایگانی و جمع آوری اطلاعات ایجاد می کند. در مبحث BI  (یا همان Business Intelligence که قبلا  توضیحاتی را ارائه داده شد،BI  در واقع بیانگر تبدیل داده ها برای تفسیر و تحلیل برای تجارتی هوشمند می باشد) شما می بایست ابتدا پایگاه داده خود را به صورت ساختار یافته طراحی کنید و سپس برای مباحث DM  نسخه جدیدی از آن طراحی کنید البته معمولا در صورتی که پایگاه داده شما به درستی طراحی شده باشد تغییرات زیادی لازم نیست.

 

مفاهیم مربوط به طراحی OLAP

مهمترین مفهومی که در طراحی سرویس های تحلیلی وجود دارد، مکعب است. مکعب، نمایشی چند بعدی از مقدار کمی مورد تحلیل است. اگر بخواهیم خیلی صریح توضیحی ارائه دهیم، این مثال را در نظر بگیرید که شما می خواهید بدانید هر کالا با چه تعدادی و در چه زمان هایی و توسط چه مشتریانی خریداری شده است. خوب هر کدام از پارامتر ها را یک مقیاس در نظر بگیرید (طول، عرض و ارتفاع) اما نکته قابل توجه این مسئله است که در این مفاهیم می تواند بعد های بیشتری داشت، در این مثال پارامترهای دیگری چون فروشند گان، نوع فروش، سیستم کالا بر، و... پارامترهای دیگری را می توان دخیل کرد اما چون می خواهیم مثال ما ساده باشد همان سه بعد را در نظر می گیریم.

ادامه مطلب...

جداول موقت در SQL Server

بسم الله الرحمن الرحیم

آموزش جداول موقت در SQL Server

همانطور که می دانید در SQL server یک پایگاه داده از پیش تعریف شده با نام Tempdb وجود دارد، در بعضی مواقع شما نیاز به یک جدول موقت نیاز دارید این جداول در این پایگاه داده ذخیره می شود البته جداول به دو دسته تقسیم می شوند یکی ما متغییر هایی از جنس جدول و دیگری جداول موقت، منظور ما جداول موقت است.

خوب برای استفاده از ویژگی متغییر های جداول موقت کافی است مثل مثال زیر عمل نمایید:

 


DECLARE @Table TABLE
(

id INT ,name NVARCHAR(MAX)
);
DECLARE @i INT =0
WHILE(@i<20)
BEGIN
INSERT INTO @Table ([id],[name]) VALUES (@i,'ESH')
SET @i+=1;
END

SELECT * FROM @Table

--UPDATE

--DELETE

 

ادامه مطلب...

ساخت Transaction در سی شارپ

بسم الله الرحمن الرحیم

آموزش برنامه نویسی آسنگرون در سی شارپ

در مطالب گذشته نحوه اجرای Transaction را در اسکیوال بیان کردم، خوب بسیاری از مزایای این کار بیان شد حال همین موارد را می توانیم در سی شارپ پیاده سازی نماییم، بدون توضیحات اضافی مثالی را بررسی می کنیم:

ادامه مطلب...

آموزش PIVOT در SQL Server

بسم الله الرحمن الرحیم

آموزش SQL Server

در بعضی مواقع نیاز است بجای نمایش نام ستون ها، مقدار فیلد به عنوان نام ستون و مقدار آن زیر ستون نمایش داده شود خوب بدون توضیح اضافی یک مثال مطرح می کنیم


SELECT [shiraz],[tehran]
FROM
(
SELECT [name]
      ,[salary]
  FROM [emp]
) AS TEMP
PIVOT
(

SUM(salary) FOR [name] IN ([shiraz],[tehran])
)AS PVT

و در نهایت خروجی دستور

ادامه مطلب...

همگام و ناهمگام در SQL

بسم الله الرحمن الرحیم

آموزش برنامه نویسی ناهمگام در سی شارپ

در این بخش می خواهیم در خصوص نحوه و شیوه های اجرای دستورات در اسکیوال مباحثی را معرفی کنیم. همان طور که شما می دانید در زبان های مختلف برنامه نویسی در خصوص نحوه اجرای دستورات دو روش اصلی Synchronize و  ASynchronize وجود دارد. در روش Synchronize تا اتمام دستورات نرم افزار شما عملا متوقف شده و به اصطلاح Lock می شود خوب وقتی این اتفاق برای ثبت یک رکورد باشد هیچوقت محسوس نیست اما فکر کنید این فرایند برای ثبت تعداد زیادی رکورد اتفاق بیافتد در این حالت سایر پردازش های نرم افزار شما باید منتظر بمانند تا فرایند کار با اسکیوال به پایان برسد!

در روش دوم  ASynchronize، پردازش های اسکیوال شما همراه با سایر پردازش های نرم افزار شما همزمان انجام خواهد شد.

مثال:

برای دانلود مثال لطفا کلیک کنید
عنوان: ASynchronize
حجم: 1.05 کیلوبایت

ادامه مطلب...

چطور سرعت واکشی اطلاعات را افزایش دهیم؟

بسم الله الرحمن الرحیم

 آموزش SQL Server

در بسیاری از پروژه ها به دلیل حجم پایین اطلاعات و تراکنش اندک در RW کردن اطلاعات هیچ نیازی به بهینه سازی اطلاعات نیست، اماممکن است شما هم مثل بنده بخواهید پایگاه داده ای را طراحی کنید که سرعت واکشی بسیار مهم باشد.

مثلا یک سایت بزرگ را در نظر بگیرید، سایتی مثل facebook این سایت چه تعداد کاربر دارد حجم تبادل اطلاعات آن چقدر است و هر روز به صورت نجومی این حجم اطلاعات در حال افزایش است، واقعا خیلی زیبا است که چطور با این حجم اطلاعات بتوان کار کرد (من شخصا پایگاه دادهایی را بیشتر از چندین گیگابایت تجربه کردم ولی تا این حد را تجربه نکردم)  خوب کمی واقعی فکر کنیم! مثلا این را در نظر بگیرید که می خواهید یک سایت جامعه مجازی فقط و فقط برای یک شهر ایران بنویسید و طراحی پایگاه داده آن با شما است.

ادامه مطلب...

معرفی دو DataType در SQL

بسم الله الرحمن االرحیم

آموزش SQL Server

Timestamp

در بعضی مواقع نیاز است شما اطلاعات درون یک پایگاه داده را به صورت Mirror ذخیره کنید، یعنی ما یک پایگاه داده اصلی و یک پایگاه داده پشتیبان داریم که اطلاعات بر روی پایگاه داده اصلی RW می شود و نسخه ای از آن نیز بر روی پایگاه داده دوم بایگانی می شود. خوب فکر کنید این کار را در سطح بسیار کوچکتر و فقط بر روی یک جدول در یک پایگاه داده انجام دهید یعنی اطلاعات این جدول با ارزش بوده و می خواهید به صورت ساده هر تغییری که در اطلاعات جدول شماره یک صورت گرفت بر روی جدول شماره دو انجام شود. راه حل؟

خوب بعضی ها اولین راه را انتخاب می کنند یعنی هر عملیات CUD را بروی جدول شماره یک اگر صورت گرفت بر روی جدول شماره دو نیز همان کار را تکرار می کنند، خوب است.

خوب راه دیگر استفاده از فیلد TimeStamp است که مقدار باینری را در خود نگه می دارد، در صورتی که مقدار رکورد عوض شود مقدار باینری این فیلد نیز عوض خواهد شد

پس اگر بخواهید متوجه شوید که مثلا بر روی رکورد شما توسط کاربر تغییری صورت گرفته می توان با مشاهده مقدار این فیلد، به این جواب برسید مثال:

 

TimeStamp

 

 

ادامه مطلب...
up
ما را در گوگل محبوب کنید