Find the tables which are not dependent on any other table, or which do not reference other table’s column for more information.
---create a table which will store
all the tables name and id in a database, which do not depend on other table ,
or which doesn'd refernece to other tables
CREATE TABLE
NotParent(Object_id1 INT,name NVARCHAR(50))
--use sys.foreign_keys table which
contains all the relation between the tables through foreign_key constraints. Here
parent_object_id are the tabels’object_id, which refernce to other table for
more information.
--use sp_MSForeachtable, which is a
Stored procedure performs operation on each table of the database. This will
compare each table’s object_id, with the parent_object_id in sys.foreign_key
table, and will fetch those object_id which are not parent , that means, which
doesn't reference to any other table
EXEC sp_MSforeachtable
@command1='INSERT INTO NotParent
SELECT
OBJECT_ID(''?''),''?''
WHERE
''?'' NOT IN (
SELECT DISTINCT ''?'' as
table_name
FROM sys.foreign_keys WHERE
parent_object_id=OBJECT_ID(''?'')
)'
SELECT * FROM
NotParent
The Result of NotParent
table can be used for various purposes for e.g; deleteion of the contents or these table first ,as these
tables will not throw any error, because these doesn’t reference to other
tables.
Please provide your feedback for the post, if you find this post useful. Also Post your query or scenario, i will be happy to help.
No comments:
Post a Comment