just delete them in the proper FK order:
DELETE GreatGrandChild
DELETE Child
DELETE Parent
and don't worry about dropping constraints.
sample code:
create table ParentTable (ParentID int primary key not null, RowValue varchar(10))
INSERT INTO ParentTable VALUES (1,'AAA')
INSERT INTO ParentTable VALUES (2,'BBB')
create table ChildTable (ChildID int primary key not null, ParentID int, RowValue varchar(10))
ALTER TABLE ChildTable ADD CONSTRAINT FK_ChildTable_ParentTable FOREIGN KEY
(ParentID) REFERENCES dbo.ParentTable (ParentID) ON UPDATE NO ACTION ON DELETE NO ACTION
INSERT INTO ChildTable VALUES (10,1,'a')
INSERT INTO ChildTable VALUES (11,1,'aa')
INSERT INTO ChildTable VALUES (12,2,'b')
INSERT INTO ChildTable VALUES (13,1,'aaa')
DELETE ChildTable
DELETE ParentTable
to find the tables that depend on your table run this query:
select
object_name(parent_object_id) AS ReferencesYourTable
,object_name(referenced_object_id) AS YourTable
,*
from sys.foreign_keys
WHERE object_name(referenced_object_id)='YourTable'
for the above query, delete all the rows in each table listed prior to deleting YourTable.