اس کیوال سرور خود را به 2008 ارتقاء دادهاید؟ آیا میدانید که مجاز هستید از تمامی امکانات جدید آن در دیتابیسهای موجود خود استفاده کنید یا خیر؟
به همین منظور ابتدا کوئری زیر را اجرا نمائید:
Use master;
SELECT name, compatibility_level FROM sys.databases
لیست دیتابیسهای موجود به همراه درجه سازگاری آنها نمایش داده میشود. هر کدام که درجه سازگاری مساوی با 100 نداشت یعنی مجاز به استفاده از تمامی امکانات سرور جدید نیست و با آن همانند یک دیتابیس قدیمی بر اساس درجه سازگاری آن رفتار میشود.
تفسیر این اعداد مطابق اطلاعات زیر است:
60 = SQL Server 6.0
65 = SQL Server 6.5
70 = SQL Server 7.0
80 = SQL Server 2000
90 = SQL Server 2005
100= SQL Server 2008
برای تغییر این درجه سازگاری میتوان از یکی از دستورات T-SQL زیر استفاده کرد:
-- Old way:
EXEC sp_dbcmptlevel 'AdventureWorks', 100
-- New way:
ALTER DATABASE 'AdventureWorks' SET COMPATIBILITY_LEVEL = 100 ;
که روش اول منسوخ شده در نظر گرفته شده و روش دوم پیشنهاد میشود.
برای مثال کوئری زیر عبارات Alter مورد نظر را جهت ارتقاء دیتابیسهای موجود که درجه سازگاری آنها 100 نیست (هنوز به اس کیوال سرور 2008 ارتقاء پیدا نکردهاند)، تولید میکند:
SELECT 'ALTER DATABASE ' + NAME + ' SET COMPATIBILITY_LEVEL = 100;' TSQL
FROM sys.databases
WHERE compatibility_level <> 100