Skip to content

Commit d9bb118

Browse files
Fix 1520 to use contiguous range not full range
1 parent 20f098c commit d9bb118

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

sqldb-tips/get-sqldb-tips-compat-level-100-only.sql

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1939,7 +1939,8 @@ SELECT 1510 AS tip_id,
19391939
', initial identity value: ', FORMAT(identity_seed, '#,0'),
19401940
', current identity value: ', FORMAT(current_identity_value, '#,0'),
19411941
', identity increment: ', FORMAT(identity_increment, '#,0'),
1942-
', data type range: ', FORMAT(range_min, '#,0'), ' to ', FORMAT(range_max, '#,0')
1942+
', data type range: ', FORMAT(range_min, '#,0'), ' to ', FORMAT(range_max, '#,0'),
1943+
', remaining contiguous range: ', FORMAT(IIF(identity_increment > 0, range_max_float - current_identity_value, range_min_float - current_identity_value), '#,0')
19431944
)
19441945
AS nvarchar(max)
19451946
),
@@ -1999,7 +2000,8 @@ SELECT 1520 AS tip_id,
19992000
', start value: ', FORMAT(start_value, '#,0'),
20002001
', current value: ', FORMAT(current_value, '#,0'),
20012002
', increment: ', FORMAT(increment, '#,0'),
2002-
', range: ', FORMAT(minimum_value, '#,0'), ' to ', FORMAT(maximum_value, '#,0'),
2003+
', full range: ', FORMAT(minimum_value, '#,0'), ' to ', FORMAT(maximum_value, '#,0'),
2004+
', remaining contiguous range: ', FORMAT(IIF(increment > 0, maximum_value - current_value, minimum_value - current_value), '#,0'),
20032005
', exhausted: ', IIF(is_exhausted = 1, 'Yes', 'No')
20042006
)
20052007
AS nvarchar(max)
@@ -2011,8 +2013,8 @@ SELECT 1520 AS tip_id,
20112013
AS details
20122014
FROM sequence_object
20132015
WHERE -- less than x% of the maximum sequence range remains
2014-
CASE WHEN increment > 0 THEN (maximum_value - current_value) / (maximum_value - minimum_value)
2015-
WHEN increment < 0 THEN (minimum_value - current_value) / (minimum_value - maximum_value)
2016+
CASE WHEN increment > 0 THEN (maximum_value - current_value) / (maximum_value - start_value)
2017+
WHEN increment < 0 THEN (minimum_value - current_value) / (minimum_value - start_value)
20162018
END < @IdentitySequenceRangeExhaustionThresholdRatio
20172019
HAVING COUNT(1) > 0;
20182020

sqldb-tips/get-sqldb-tips.sql

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1934,7 +1934,8 @@ SELECT 1510 AS tip_id,
19341934
', initial identity value: ', FORMAT(identity_seed, '#,0'),
19351935
', current identity value: ', FORMAT(current_identity_value, '#,0'),
19361936
', identity increment: ', FORMAT(identity_increment, '#,0'),
1937-
', data type range: ', FORMAT(range_min, '#,0'), ' to ', FORMAT(range_max, '#,0')
1937+
', data type range: ', FORMAT(range_min, '#,0'), ' to ', FORMAT(range_max, '#,0'),
1938+
', remaining contiguous range: ', FORMAT(IIF(identity_increment > 0, range_max_float - current_identity_value, range_min_float - current_identity_value), '#,0')
19381939
)
19391940
AS nvarchar(max)
19401941
),
@@ -1994,7 +1995,8 @@ SELECT 1520 AS tip_id,
19941995
', start value: ', FORMAT(start_value, '#,0'),
19951996
', current value: ', FORMAT(current_value, '#,0'),
19961997
', increment: ', FORMAT(increment, '#,0'),
1997-
', range: ', FORMAT(minimum_value, '#,0'), ' to ', FORMAT(maximum_value, '#,0'),
1998+
', full range: ', FORMAT(minimum_value, '#,0'), ' to ', FORMAT(maximum_value, '#,0'),
1999+
', remaining contiguous range: ', FORMAT(IIF(increment > 0, maximum_value - current_value, minimum_value - current_value), '#,0'),
19982000
', exhausted: ', IIF(is_exhausted = 1, 'Yes', 'No')
19992001
)
20002002
AS nvarchar(max)
@@ -2006,8 +2008,8 @@ SELECT 1520 AS tip_id,
20062008
AS details
20072009
FROM sequence_object
20082010
WHERE -- less than x% of the maximum sequence range remains
2009-
CASE WHEN increment > 0 THEN (maximum_value - current_value) / (maximum_value - minimum_value)
2010-
WHEN increment < 0 THEN (minimum_value - current_value) / (minimum_value - maximum_value)
2011+
CASE WHEN increment > 0 THEN (maximum_value - current_value) / (maximum_value - start_value)
2012+
WHEN increment < 0 THEN (minimum_value - current_value) / (minimum_value - start_value)
20112013
END < @IdentitySequenceRangeExhaustionThresholdRatio
20122014
HAVING COUNT(1) > 0;
20132015

0 commit comments

Comments
 (0)