use testnew; CREATE TABLE POINT ( pointid int PRIMARY KEY, x float NOT NULL, y float NOT NULL ); CREATE TABLE CIRCLE ( circleid int PRIMARY KEY, originid int FOREIGN KEY REFERENCES POINT(pointid) NOT NULL, radius float NOT NULL ); IF (object_id('AddCircle')) is NOT NULL DROP PROCEDURE AddCircle GO CREATE PROCEDURE AddCircle ( @x float, @y float, @radius float ) AS DECLARE @pid int SELECT @pid = COUNT(*) FROM POINT DECLARE @cid int SELECT @cid = COUNT(*) FROM CIRCLE INSERT INTO POINT VALUES (@pid, @x, @y) INSERT INTO CIRCLE VALUES (@cid, @pid, @radius) SELECT * FROM POINT, CIRCLE WHERE originid=pointid AND pointid=@pid GO EXECUTE AddCircle 23.4, 45.3, 78.4 GO EXECUTE AddCircle 23.4, 45.3, 78.4 GO EXECUTE AddCircle 123.4, 245.3, 178.4 GO SELECT * FROM POINT, CIRCLE WHERE originid=pointid GO