This is a rudimentary solution, but you can create a function that returns a 1 if the values meet the rule, and add a check constraint that the result of the function on the columns in question = 1.
This is a basic example, assuming the child table shares a unique identifier with the parent table to identify the values to compare. This is within the same database, but you can reference the parent table with three part naming. It may fail if the identifier column is not unique, but if that's the case you wouldn't know which row to compare. If the identifier doesn't exist in the parent table it is forced to fail. This acts as a pseudo-foreign key for the identifier column. If that is not what you want, then change the -1 to +1.
This doesn't stop you updating the parent table in a way that breaks the rule.
CREATE TABLE dbo.ParentScore
( RecordID INT,
VALUES (1,100), (2,1000000)
CREATE FUNCTION dbo.UdfScheckScore (@RecordID INT, @Score INT)
RETURNS INT AS
DECLARE @Result INT
SELECT @Result = CASE
WHEN ISNULL(( SELECT Score FROM dbo.ParentScore
WHERE RecordID = @RecordID),@Score-1) > @Score
SELECT dbo.UdfScheckScore (1,200)
SELECT dbo.UdfScheckScore (2,200)
CREATE TABLE dbo.ChildScore
( RecordID INT,
CONSTRAINT CKScore CHECK (dbo.UdfScheckScore (RecordID, Score) = 1)
--The INSERT statement conflicted with the CHECK constraint "CKScore". The conflict occurred in database "TinyDB", table "dbo.OtherScore".
-- Fail because the score is null
ALTER TABLE dbo.ChildScore DROP CONSTRAINT CKScore
DROP FUNCTION IF EXISTS dbo.UdfScheckScore
DROP TABLE IF EXISTS dbo.ChildScore
DROP TABLE IF EXISTS dbo.ParentScore