What you're wanting not a constraint. You're looking for a trigger. Take a look at this example.
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[Account]')
AND type IN ( N'U' ) )
DROP TABLE [dbo].[Account]
GO
CREATE TABLE dbo.Account
(
AccountID INT NOT NULL ,
AccountBalance DECIMAL(19, 2) NOT NULL
)
GO
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[Transaction]')
AND type IN ( N'U' ) )
DROP TABLE [dbo].[Transaction]
GO
CREATE TABLE dbo.[Transaction]
(
TransactionID INT NOT NULL
IDENTITY(1, 1) ,
AccountID INT NOT NULL ,
TransactionAmount DECIMAL(19, 2) NOT NULL
)
GO
CREATE TRIGGER dbo.TRI_Transaction ON dbo.[Transaction]
AFTER INSERT
AS
UPDATE a
SET a.AccountBalance = a.AccountBalance + i.TransactionAmount
FROM Account a
JOIN INSERTED i ON ( a.AccountID = i.AccountID )
GO
INSERT INTO dbo.Account
( AccountID, AccountBalance )
VALUES ( 1234, 0 )
SELECT *
FROM dbo.Account a
LEFT OUTER JOIN dbo.[Transaction] t ON ( a.AccountID = t.AccountID )
INSERT INTO dbo.[Transaction]
( AccountID, TransactionAmount )
VALUES ( 1234, 10 )
SELECT *
FROM dbo.Account a
LEFT OUTER JOIN dbo.[Transaction] t ON ( a.AccountID = t.AccountID )
INSERT INTO dbo.[Transaction]
( AccountID, TransactionAmount )
VALUES ( 1234, 20 )
SELECT *
FROM dbo.Account a
LEFT OUTER JOIN dbo.[Transaction] t ON ( a.AccountID = t.AccountID )
INSERT INTO dbo.[Transaction]
( AccountID, TransactionAmount )
VALUES ( 1234, -15 )
SELECT *
FROM dbo.Account a
LEFT OUTER JOIN dbo.[Transaction] t ON ( a.AccountID = t.AccountID )