You can use this query:
Select Query =
'If EXISTS (Select * FROM sys.foreign_keys Where '
+ ' object_id = OBJECT_ID(N''' + QUOTENAME(OBJECT_SCHEMA_NAME(fk.parent_object_id)) + '.' + QUOTENAME(fk.name) + ''')'
+ ' And parent_object_id = OBJECT_ID(N''' + QUOTENAME(OBJECT_SCHEMA_NAME(fk.parent_object_id)) + '.' + OBJECT_NAME(fk.parent_object_id) + ''')) ' +
'ALTER TABLE ' + QUOTENAME(OBJECT_SCHEMA_NAME(fk.parent_object_id))
+ '.' + QUOTENAME(OBJECT_NAME(fk.parent_object_id))
+ ' DROP CONSTRAINT ' + QUOTENAME(fk.name) + '; '
, [Schema] = sh.name, [Table] = OBJECT_NAME(fk.parent_object_id), [Constraint] = ob.name
From sys.foreign_keys as fk
Inner Join sys.objects as ob on ob.object_id = fk.parent_object_id
Inner Join sys.schemas as sh on ob.schema_id = sh.schema_id
Where ob.name in ('xxx', 'yyy');
It will output:
- Drop constraint query
- Schema name
- Table name
- Constraint name
You can then dynamicaly execute the queries in the first column:
Exec sp_executesql @sql
Where @sql comes from the Query column. Once the constraints have been remove, you can drop the table.