Deprecated features still working

Benjamin Shaw 141 Reputation points
2021-06-04T10:44:04.607+00:00

Hi,

When a feature is deprecated in SQL Server does it mean that an error will occur if it is used.

For example. I was under the impression that the IMAGE data type was deprecated in 2019. However, it appears like I can still use it. select cast(null as image).

The Microsoft documentation also says there are no breaking changes in 2019. Dose this mean that anything which works in 2016 will still work in 2019.

Many thanks :)

SQL Server Migration Assistant
SQL Server Migration Assistant
A Microsoft tool designed to automate database migration to SQL Server from Access, DB2, MySQL, Oracle, and SAP ASE.
569 questions
Developer technologies | Transact-SQL
SQL Server | Other
{count} votes

4 answers

Sort by: Most helpful
  1. Leon Laude 86,031 Reputation points
    2021-06-04T10:54:53.3+00:00

    Hi @Benjamin Shaw ,

    From the documentation:
    Deprecated database engine features in SQL Server 2019 (15.x)

    Deprecation guidelines

    When a feature is marked deprecated, it means:

    • The feature is in maintenance mode only. No new changes will be done, including those related to addressing inter-operability with new features.
    • We strive not to remove a deprecated feature from future releases to make upgrades easier. However, under rare situations, we may choose to permanently discontinue (remove) the feature from SQL Server if it limits future innovations.
    • For new development work, do not use deprecated features. For existing aplications, plan to modify applications that currently use these features as soon as possible.

    You can monitor the use of deprecated features by using the SQL Server Deprecated Features Object performance counter, or the deprecation_announcement and deprecation_final_support extended events. For more information, see Use SQL Server Objects.

    ----------

    (If the reply was helpful please don't forget to upvote and/or accept as answer, thank you)

    Best regards,
    Leon

    1 person found this answer helpful.
    0 comments No comments

  2. Olaf Helper 47,516 Reputation points
    2021-06-04T10:56:09.557+00:00

    When a feature is deprecated in SQL Server does it mean that an error will occur if it is used.

    No, that won't error out. If you run a trace / Profiler , you get Deprecation Announcement Event, that's all.
    Deprecated means, the feature will be removed in a future version of SQL Server and you should avoid it using in new development, but until the feature is finally removed, it will still work. Only some less deprecated system views may return an unexpected result.

    1 person found this answer helpful.
    0 comments No comments

  3. Dan Guzman 9,406 Reputation points
    2021-06-04T11:12:43.527+00:00

    The Microsoft documentation also says there are no breaking changes in 2019. Dose this mean that anything which works in 2016 will still work in 2019.

    Not quite. The list of breaking changes is not cumulative so you need to review the changes between your current and target version too. See SQL Server 2017 breaking changes.

    1 person found this answer helpful.
    0 comments No comments

  4. CathyJi-MSFT 22,396 Reputation points Microsoft External Staff
    2021-06-07T08:07:11.497+00:00

    Hi @Benjamin Shaw ,

    > When a feature is deprecated in SQL Server does it mean that an error will occur if it is used.

    No, if a feature is marked deprecated, it means the feature is in maintenance mode only. No new changes will be done. It can be still used. But we suggest you do not use deprecated feature in new development works.

    > Dose this mean that anything which works in 2016 will still work in 2019.

    No, as Dan mentioned, you need to check the SQL server 2017 breaking changes.

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.