こんにちは、手順を完了するには、seqno intのような列をもう1つ保持し、seqnoを親の子レベルで更新する必要があります。ステートメント列からテーブル名を読み取り、SQLサーバーから親の子レベルを見つけるのは非常に難しいので、そのテーブルにseqnoがあると仮定すると、次のようにprocを記述できます。
DECLARE @table table (statements varchar(200),id int,seqno int)
INSERT INTO @table
values('INSERT INTO country(parent to state)',1,1),
('INSERT INTO state(parent to city)',2,2),
('INSERT INTO city(parent to zipcode)' ,3,3),
('INSERT INTO zipcode' ,4,4),
('update city(parent to zipcode)' ,4,3),
('delete FROM country' ,7,1),
('delete FROM zipcode' ,6,4)
--- you can change below code to proc u can write case statements if u want only inset or delete like that
DECLARE @outtable table(statements varchar(200),seqno int,id int iDENTITY(1,1))
INSERT INTO @outtable
SELECT statements,seqno FROM @table WHERE statements like '%insert%' ORDER BY seqno ASC
INSERT INTO @outtable
SELECT statements,seqno FROM @table WHERE statements like '%update%' ORDER BY seqno ASC
INSERT INTO @outtable
SELECT statements,seqno FROM @table WHERE statements like '%delete%' ORDER BY seqno DESC
SELECT * FROM @outtable order by id asc