Last week we discussed about problem how to do some data action on all tables and not to break relationship rules.
If you consult sysobjects and sysforeignkeys you will be able to create the hierarchy of tables either from root(s) to leaves or vice-versa.
Once when you have this list you can construct dynamic script and do the action against these tables. Possibilities are unlimited.
This example will empty the content of current database. I found this useful when end users are doing final test in production environment (because they don't have test environment) and after that they ask to switch from test to production. Or, you can export (bcp out, when table order is not important) data and than import (bcp in, when proper order is precondition for successful execution).