KB4058289 - FIX: ALTER PROCEDURE WITH ENCRYPTION statement fails when you encrypt a non-published stored procedure in SQL Server 2016 and 2017

Applies To
SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

Symptoms

Assume that you create a merge publication in Microsoft SQL Server 2016 and 2017. When you try to encrypt a stored procedure that's not part of the published objects by using the ALTER PROCEDURE … WITH ENCRYPTION statement, you may notice that the statement fails with an error message that resembles the following:

Note

Msg 536, Level 16, State 4, Procedure ProcedureName, Line LineNumber [Batch Start Line LineNumber]

Invalid length parameter passed to the RIGHT function.

Resolution

This issue is fixed in the following cumulative updates for SQL Server:

Cumulative Update 6 for SQL Server 2017

Cumulative update 8 for SQL Server 2016 SP1

About cumulative updates for SQL Server:

Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:

Latest cumulative update for SQL Server 2017

Latest cumulative update for SQL Server 2016

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

References

Learn about the terminology that Microsoft uses to describe software updates.