Now that SQL Server 2012 has officially been released, it is time to start revisiting deprecated features. But, first, a definition reminder:
- “Discontinued” means that the feature is not available in SQL Server 2012.
- “Deprecated” means that the feature will be removed in a future version. “Deprecated” also typically means that there are no updates to this feature in the current release.
Thus, I will first review a couple of the features which you may have used in prior versions which were deprecated in earlier versions and now discontinued in SQL Server 2012 – or are they?
Per the note in the CREATE ENDPOINT BOL link this feature is discontinued. However, it is also currently listed in BOL under “Deprecated SQL Server Features in SQL Server 2012” which implies it won’t go away until a release after SQL Server 2012. So which is it – gone already or still waiting to go? A test of running sample code to create such an endpoint in SQL Server 2012 results in the error message shown below supporting it is now actually discontinued, not deprecated for removal later. Thus, if you have used these endpoint types, you will need to find them and convert to Windows Communication Foundation (WCF) or ASP.NET before upgrading to SQL Server 2012. Check this BOL reference for assistance.
Here’s the sample code that was executed which was copied from SQL Server 2008 R2 BOL:
This function has been replaced and superseded with the DATABASEPROPERTYEX function since SQL Server 2005. Intellisense in SSMS 2012 will flag that it doesn’t recognize this as valid syntax (see image below). The unexpected thing here is when you execute a query using DATABASEPROPERTY in SQL Server 2012 – you don’t get an error! It seems to still work (see results image below). I don’t know about you – but this was not the result I expected. If DATABASEPROPERTY is no longer valid as indicated in SSMS (and BOL) – shouldn’t the execution return an invalid function error? At any rate, it appears you may have a little longer to track down your usage of this function and update it to use DATABASEPROPERTYEX as DATABASEPROPERTY does still work for the time being.
Obviously, it doesn’t hurt to start replacing the usage of deprecated features as soon as possible. Then, you don’t have to worry as much about which future version actually discontinues the feature, if you have already discontinued your usage of it.