@@ -518,9 +518,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
518518 HASHBYTES
519519 (
520520 ' SHA2_256' ,
521- CONVERT (varbinary (8 ), CONVERT ( integer , database_id) ) +
522- CONVERT (varbinary (8 ), CONVERT ( integer , object_id ) ) +
523- CONVERT (varbinary (8 ), CONVERT ( integer , index_id) )
521+ CONVERT (varbinary (8 ), database_id) +
522+ CONVERT (varbinary (8 ), object_id ) +
523+ CONVERT (varbinary (8 ), index_id)
524524 )
525525 ) PERSISTED
526526 PRIMARY KEY CLUSTERED
@@ -556,9 +556,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
556556 HASHBYTES
557557 (
558558 ' SHA2_256' ,
559- CONVERT (varbinary (8 ), CONVERT ( integer , database_id) ) +
560- CONVERT (varbinary (8 ), CONVERT ( integer , object_id ) ) +
561- CONVERT (varbinary (8 ), CONVERT ( integer , index_id) )
559+ CONVERT (varbinary (8 ), database_id) +
560+ CONVERT (varbinary (8 ), object_id ) +
561+ CONVERT (varbinary (8 ), index_id)
562562 )
563563 ) PERSISTED
564564 PRIMARY KEY CLUSTERED
@@ -616,10 +616,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
616616 HASHBYTES
617617 (
618618 ' SHA2_256' ,
619- CONVERT (varbinary (8 ), CONVERT ( integer , database_id) ) +
620- CONVERT (varbinary (8 ), CONVERT ( integer , object_id ) ) +
621- CONVERT (varbinary (max ), CONVERT ( sysname , column_name) ) +
622- CONVERT (varbinary (8 ), CONVERT ( integer , key_ordinal) )
619+ CONVERT (varbinary (8 ), database_id) +
620+ CONVERT (varbinary (8 ), object_id ) +
621+ CONVERT (varbinary (max ), column_name) +
622+ CONVERT (varbinary (8 ), key_ordinal)
623623 )
624624 ) PERSISTED ,
625625 scope_hash AS
@@ -629,8 +629,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
629629 HASHBYTES
630630 (
631631 ' SHA2_256' ,
632- CONVERT (varbinary (8 ), CONVERT ( integer , database_id) ) +
633- CONVERT (varbinary (8 ), CONVERT ( integer , object_id ) )
632+ CONVERT (varbinary (8 ), database_id) +
633+ CONVERT (varbinary (8 ), object_id )
634634 )
635635 ) PERSISTED
636636 PRIMARY KEY CLUSTERED
@@ -678,8 +678,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
678678 HASHBYTES
679679 (
680680 ' SHA2_256' ,
681- CONVERT (varbinary (8 ), CONVERT ( integer , database_id) ) +
682- CONVERT (varbinary (8 ), CONVERT ( integer , object_id ) )
681+ CONVERT (varbinary (8 ), database_id) +
682+ CONVERT (varbinary (8 ), object_id )
683683 )
684684 ) PERSISTED ,
685685 exact_match_hash AS
@@ -712,9 +712,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
712712 HASHBYTES
713713 (
714714 ' SHA2_256' ,
715- CONVERT (varbinary (8 ), CONVERT ( integer , database_id) ) +
716- CONVERT (varbinary (8 ), CONVERT ( integer , object_id ) ) +
717- CONVERT (varbinary (8 ), CONVERT ( integer , index_id) )
715+ CONVERT (varbinary (8 ), database_id) +
716+ CONVERT (varbinary (8 ), object_id ) +
717+ CONVERT (varbinary (8 ), index_id)
718718 )
719719 ) PERSISTED
720720 );
@@ -787,9 +787,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
787787 HASHBYTES
788788 (
789789 ' SHA2_256' ,
790- CONVERT (varbinary (8 ), CONVERT ( integer , database_id) ) +
791- CONVERT (varbinary (8 ), CONVERT ( integer , object_id ) ) +
792- CONVERT (varbinary (8 ), CONVERT ( integer , index_id) )
790+ CONVERT (varbinary (8 ), database_id) +
791+ CONVERT (varbinary (8 ), object_id ) +
792+ CONVERT (varbinary (8 ), index_id)
793793 )
794794 ) PERSISTED
795795 PRIMARY KEY CLUSTERED
@@ -838,8 +838,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
838838 HASHBYTES
839839 (
840840 ' SHA2_256' ,
841- CONVERT (varbinary (8 ), CONVERT ( integer , database_id) ) +
842- CONVERT (varbinary (8 ), CONVERT ( integer , object_id ) )
841+ CONVERT (varbinary (8 ), database_id) +
842+ CONVERT (varbinary (8 ), object_id )
843843 )
844844 ) PERSISTED ,
845845 key_filter_hash AS
@@ -872,8 +872,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
872872 HASHBYTES
873873 (
874874 ' SHA2_256' ,
875- CONVERT (varbinary (8 ), CONVERT ( integer , database_id) ) +
876- CONVERT (varbinary (8 ), CONVERT ( integer , object_id ) )
875+ CONVERT (varbinary (8 ), database_id) +
876+ CONVERT (varbinary (8 ), object_id )
877877 )
878878 ) PERSISTED
879879 );
@@ -1747,15 +1747,25 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
17471747 c.column_id,
17481748 column_name = c.name,
17491749 definition = cc.definition,
1750+ /*
1751+ UDF detection: Looks for schema-qualified object references like [schema].[function]
1752+ Note: This is a heuristic check and may have rare false positives if ].[ appears
1753+ in string literals or comments within the computed column definition
1754+ */
17501755 contains_udf =
17511756 CASE
17521757 WHEN cc.definition LIKE '' %|].|[%'' ESCAPE '' |''
1758+ AND cc.definition LIKE '' %|].|[%(%'' ESCAPE '' |''
17531759 THEN 1
17541760 ELSE 0
17551761 END,
17561762 udf_names =
17571763 CASE
17581764 WHEN cc.definition LIKE '' %|].|[%'' ESCAPE '' |''
1765+ AND cc.definition LIKE '' %|].|[%(%'' ESCAPE '' |''
1766+ AND CHARINDEX(N'' ['' , cc.definition) > 0
1767+ AND CHARINDEX(N'' ].['' , cc.definition) > 0
1768+ AND CHARINDEX(N'' ]'' , cc.definition, CHARINDEX(N'' ].['' , cc.definition) + 3) > 0
17591769 THEN
17601770 SUBSTRING
17611771 (
@@ -1834,15 +1844,25 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18341844 cc.object_id AS constraint_id,
18351845 constraint_name = cc.name,
18361846 definition = cc.definition,
1847+ /*
1848+ UDF detection: Looks for schema-qualified object references like [schema].[function]
1849+ Note: This is a heuristic check and may have rare false positives if ].[ appears
1850+ in string literals or comments within the computed column definition
1851+ */
18371852 contains_udf =
18381853 CASE
18391854 WHEN cc.definition LIKE '' %|].|[%'' ESCAPE '' |''
1855+ AND cc.definition LIKE '' %|].|[%(%'' ESCAPE '' |''
18401856 THEN 1
18411857 ELSE 0
18421858 END,
18431859 udf_names =
18441860 CASE
18451861 WHEN cc.definition LIKE '' %|].|[%'' ESCAPE '' |''
1862+ AND cc.definition LIKE '' %|].|[%(%'' ESCAPE '' |''
1863+ AND CHARINDEX(N'' ['' , cc.definition) > 0
1864+ AND CHARINDEX(N'' ].['' , cc.definition) > 0
1865+ AND CHARINDEX(N'' ]'' , cc.definition, CHARINDEX(N'' ].['' , cc.definition) + 3) > 0
18461866 THEN
18471867 SUBSTRING
18481868 (
@@ -2038,7 +2058,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20382058 @current_database_id,
20392059 @object_id;
20402060
2041- IF ROWCOUNT_BIG () = 0
2061+ SET @rc = ROWCOUNT_BIG ();
2062+
2063+ IF @rc = 0
20422064 BEGIN
20432065 IF @debug = 1
20442066 BEGIN
@@ -2292,7 +2314,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22922314 @object_id,
22932315 @min_rows;
22942316
2295- IF ROWCOUNT_BIG () = 0
2317+ SET @rc = ROWCOUNT_BIG ();
2318+
2319+ IF @rc = 0
22962320 BEGIN
22972321 IF @debug = 1
22982322 BEGIN
@@ -2490,7 +2514,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24902514 @current_database_id,
24912515 @object_id;
24922516
2493- IF ROWCOUNT_BIG () = 0
2517+ SET @rc = ROWCOUNT_BIG ();
2518+
2519+ IF @rc = 0
24942520 BEGIN
24952521 IF @debug = 1
24962522 BEGIN
@@ -2725,7 +2751,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27252751 id1 .is_unique_constraint
27262752 OPTION (RECOMPILE );
27272753
2728- IF ROWCOUNT_BIG () = 0
2754+ SET @rc = ROWCOUNT_BIG ();
2755+
2756+ IF @rc = 0
27292757 BEGIN
27302758 IF @debug = 1
27312759 BEGIN
@@ -3923,6 +3951,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
39233951
39243952 INSERT INTO
39253953 #index_cleanup_results
3954+ WITH
3955+ (TABLOCK )
39263956 (
39273957 result_type,
39283958 sort_order,
@@ -6984,6 +7014,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
69847014
69857015END TRY
69867016BEGIN CATCH
7017+ IF @@TRANCOUNT > 0
7018+ BEGIN
7019+ ROLLBACK ;
7020+ END ;
7021+
69877022 THROW ;
69887023END CATCH ;
69897024END ; /* Final End*/
0 commit comments