When fiddling with database relations in an Azure database you quickly notice you are on your own in terms of tooling in a way that you’re not used to from Microsoft. Metadata however is available so you can work around these things relatively easily.
So: when you are dropping and recreating tables as you design them – here’s a quick snippet to see which columns are depending on the particular table you are editing now:
create procedure show_referencing_relations @schemaname sysname, @tablename sysname as select [DropSQL] = 'ALTER TABLE [' + @schemaname + '].[' + ptbl.name + '] DROP CONSTRAINT [' + fks.name + '];', [AddSQL] = 'ALTER TABLE [' + @schemaname + '].[' + ptbl.name + '] ADD CONSTRAINT [' + fks.name + '] FOREIGN KEY (' + pcol.name + ') REFERENCES [' + @schemaname + '].[' + @tablename + '] (' + col.name + ')', [ConstraintName] = fks.name, [Source Column Name] = col.name, [Parent Table Name] = ptbl.name, [Parent Column Name] = pcol.name from sys.foreign_keys fks inner join sys.all_objects ao on fks.referenced_object_id = ao.object_id inner join sys.foreign_key_columns fkc on fks.object_id = fkc.constraint_object_id inner join sys.all_columns col on col.object_id = ao.object_id and fkc.referenced_column_id = col.column_id inner join sys.all_objects ptbl on fkc.parent_object_id = ptbl.object_id inner join sys.all_columns pcol on fkc.parent_column_id = pcol.column_id and pcol.object_id = fkc.parent_object_id --inner join sys.all_objects pcol on fkc.constraint_column_id = pcol.object_id where ao.name = @tablename
Run it with schema and table names, and you get some SQL to use before and after your planned change. First one to remove the constraints and the second one to restore them. The results of the stored procedure show the name of the constraint, the column in your table that is being referenced plus the parent table and column involved in the relationship.
Then you can quickly write code to drop and recreate these relations.