It seems like, to me, that knowing the weight per cubic inch is probably quite important; thus, it would seem worth while to add the column as a computed column. Then, if you set it to PERSISTED, you can then add a CONSTRAINT to that column.
This is a much simpler example, but should give you the right idea, that you can then apply to your own environment:
USE Sandbox;
GO
CREATE TABLE Shipment (BoxID int IDENTITY(1,1),
Width decimal(6,2),
[Length] decimal(6,2),
Area AS Width * [Length] PERSISTED);
GO
ALTER TABLE Shipment ADD CONSTRAINT SizeRestriction CHECK (Area <= 10);
GO
--box is correct size
INSERT INTO Shipment (Width, [Length])
VALUES (3,2);
--1 row returned!
SELECT *
FROM Shipment;
GO
--Box is too large
INSERT INTO Shipment (Width, [Length])
VALUES (3,4);
GO
--Still only 1 row returned as last row was not inserted
SELECT *
FROM Shipment;
GO
DROP TABLE Shipment;
GO
Thom~
Excuse my typos and sometimes awful grammar. My fingers work faster than my brain does.
Larnu.uk