Deprecation and compatibility level

  • Hi, 
     I analyzing possibility of database migration from SQL 2012 to 2017 , 
    using CREATE EVENT SESSION [Audit_My_Apps_Deprecated] ON SERVER
    and 
    ADD EVENT sqlserver.deprecation_announcement
     ADD EVENT sqlserver.deprecation_final_support

    I am capturing  my application activity.
    so far I am getting 

    (deprecation_announcement) : The ability to return results from triggers will be removed in a future version of SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use it.
    (deprecation_final_support) :   The TEXT, NTEXT, and IMAGE data types will be removed in a future version of SQL Server. Avoid using them in new development work, and plan to modify applications that currently use them. Use the varchar(max), nvarchar(max), and varbinary(max) data types instead.

    Question
     If I migrate my db  to SQL 2017 with compatibility level of 2012 will my database be able to use those "old" futures?  

    Thank you

  • Deprecated means that the functionality hasn't been removed, yet. Yet is the key word here. The data types TEXT, NTEXT and IMAGE, for example, have been deprecated since SQL Server 2008 (if I recall correctly, possibly 2005 or earlier), yet they are still in SQL Server, at the moment.

    That, however, isn't to say that you should continue to use those deprecated features. If you know a practice/function is deprecated, you should be preparing or changing your databases to use a different method. For example, with TEXT, NTEXT and IMAGE, you should be using varchar(MAX), nvarchar(MAX) and varbinary respectively.

    Thom~

    Excuse my typos and sometimes awful grammar. My fingers work faster than my brain does.
    Larnu.uk

  • Thom A - Monday, May 14, 2018 8:22 AM

    Deprecated means that the functionality hasn't been removed, yet. Yet is the key word here. The data types TEXT, NTEXT and IMAGE, for example, have been deprecated since SQL Server 2008 (if I recall correctly, possibly 2005 or earlier), yet they are still in SQL Server, at the moment.

    That, however, isn't to say that you should continue to use those deprecated features. If you know a practice/function is deprecated, you should be preparing or changing your databases to use a different method. For example, with TEXT, NTEXT and IMAGE, you should be using varchar(MAX), nvarchar(MAX) and varbinary respectively.

    Actually, iirc, TEXT, NTEXT, and IMAGE were deprecated in SQL Server 2005.

Viewing 3 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic. Login to reply