معمولا برای بدست آوردن تعداد سطرهای یک جدول از دستور زیر استفاده میشود.
Select count(*) from table_name
اما برای بدست آوردن تعداد سطرهای یک جدول روشهای دیگری نیز وجود دارد. هر یک از کوئریهای زیر این کار را انجام میدهند
.
select sum(1) from table_name
select count(1) from table_name
'exec sp_spaceused ‘table_name
DBCC CHECKTABLE(‘table_name’
)
برای اینکار فقط کافیست دادهها را به نوع int تبدیل کنید. برای درک بهتر این موضوع کوئری زیر را اجرا کنید.
create table #data (data varchar(10)) insert into #data select '12345' as data union all select '00123' as data union all select '0060' union all select '00101' union all select '00021' union all select '20000' select data as Before, case when convert(int,data) is not null then cast(cast(data as int) as varchar(10)) else data end as After from #data
فایل پشتیبان (Backup) یک جزء اساسی و جدا نشدنی در حفظ و نگه داری دادهها است. بانکهای اطلاعاتی که وظیفه ذخیره دادهها را بر عهده دارند نیز از این قاعده مستثنی نیستند و در واقع میتوان گفت که فایلهای پشتیبانی در بانکهای اطلاعاتی حیاتی هستند.
روشهای گوناگونی برای گرفتن فایل پشتیبان از بانک اطلاعاتی وجود دارد و گاهی برای انجام اینکار نیاز به کوئریهای پیچیده است. در این پست قصد دارم به یک روش ساده جهت پشتیبان گیری خودکار بپردازم.
در 2008 SQL Server برای اینکار از Maintenance Plan Wizard استفاده میکنیم. البته Maintenance Plan Wizard کارهای مختلفی انجام میدهد که یکی از این کارها Backupگیری است.
برای انجام این کار مراحل زیر را انجام دهید.
۱- ابتدا مطمئن شوید که SQL Server Agent در حالت Start قرار دارد.
۲- در Object Explorer به قسمت Maintenance رفته و برروی Maintenance Plans کلیک راست کنید و از منوی باز شده Maintenance Plan Wizard را انتخاب نمایید.
۳- در صفحهی Select Plan Properties نام دلخواه خود را در قسمت Name وارد کرده و گزینهی Separate schedules for each task را انتخاب کنید.
با انتخاب این گزینه میتوانید در ادامه زمانبندی اجرای عملیات پشتیبان گیری را مدیریت کنید.
۴- برروی Next کلیک کنید.
۵- در صفحهی Select Maintenance Tasks گزینه Back Up Databases(Full) را انتخاب کنید.
همانطور که مشاهده میکنید، Maintenance Plans کارهای مختلفی انجام میدهد که یکی از آنها پشتیبان گیری است.
۶- دوبار Next کنید تا به صفحهی Define Back Up Database (Full) Task برسید. در این صفحه تنظیمات مربوط به ایجاد فایل پشتیبان قرار دارد.
این تنظیمات شامل، انتخاب بانک اطلاعاتی، محل ذخیره سازی فایل پشتیبان و زمانبندی پشتیبانگیری است. مطابق شکل زیر تنظیمات را انجام دهید و زمانبندی پشتیبان گیری را با کلیک برروی Change انجام دهید.
۷- مراحل را ادامه دهید تا پس از کلیک بر روی Finish مراحل کار به شکل زیر تمام شود.
حال در زمان و تاریخ مشخص شده از بانک اطلاعتی شما فایل پشتیبان در آدرس تعیین شده، گرفته میشود.
برای مقایسه اطلاعات دو جدول راههای زیادی وجود دارد. یکی از این روشها را در اینجا شرح دادم. اما اگر بخواهیم پس از مقایسه اطلاعات دو جدول آنها را دقیقا مشابه هم کنیم، باید از کوئریهای پیچیده جهت انتقال اطلاعات و یکسان سازی استفاده کنیم.
برای حل این مسئله روش بهتر و سادهتری نیز وجود دارد. TableDiff این امکان را برای ما فراهم میکند که بتوانیم رکوردهای دو جدول را با هم مقایسه و مطابق کنیم. در واقع TableDiff با مقایسهی تمامی رکوردهای جدول A با تمامی رکوردهای جدول B اختلافات را شناسایی ذخیره میکند.
جهت استفاده از TableDiff مراحل زیر را انجام دهید.
۱- ابتدا باید از نصب بودن TableDiff در SQL اطمینان حاصل کنیم. برای اینکار به آدرس C:\Program Files\Microsoft SQL Server\100\COM\ رفته تا فایل tablediff.exe را مشاهده کنید.
۲- فعال کردن دسترسی به تابع xp_cmdshell.
اجرای دستورات tablediff از طریق تابع xp_cmdshell امکان پذیر است. برای فعال کردن این تابع از دستور زیر استفاده کنید.
EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO |
۳- دو جدول مشابه با نامهای A و B در یک بانک اطلاعاتی به نام Shop ایجاد کنید. در جدول A چند سطر رکورد وارد کنید.
دقت داشته باشید که این جداول حتما باید فیلدهای یکسان داشته باشند.
۴- با اجرای کوئری زیر دو جدول A و B با هم مقایسه میشوند و نتیجهی آن در فایل Result.sql در درایو C ذخیره میشود.
exec master..xp_cmdshell'"C:\Program Files\Microsoft SQL Server\100\COM\tablediff.exe" -sourceserver (local) -sourcedatabase Shop -sourcetable A -destinationserver (local) -destinationdatabase Shop -destinationtable B -f C:\ Result.sql' |
۵- با اجرای کوئری ساخته شده در فایل Result.sql اطلاعات جدول B همانند اطلاعات جدول A خواهد شد.