I am encountering a problem with getting the unit tests to run on Sybase because of cascades of errors originating from failure to drop a table that is referenced by a FK constraint in another table. When attempting to drop the people table, I need the SybaseSQLSchemaDropper to emit SQL like this which first does an ALTER TABLE to remove FK constraints from all tables which reference people:
344:1> ALTER TABLE managers DROP CONSTRAINT managers_1466289798 344:2> go 345:1> drop table people 345:2> go 346:1> How should one deal with the situation when the referring tables are not part of the same metadata collection? pjjH 341:2> sp__revtable people 341:3> go -- Table_DDL ---------------------------------------------------------------------- CREATE TABLE people ( person_id int identity NOT NULL, name varchar(50) NULL, type varchar(30) NULL ) ----------------------------------------------------------------------------------------------------- ------------------- ALTER TABLE people ADD PRIMARY KEY CLUSTERED ( person_id) -- FOREIGN REFERENCE --------------------------------------- -- No Indexes found in Current Database (return status = 0) 342:1> sp_helpconstraint people 342:2> go name definition created ------------------- ------------------------------------------------------------- ------------------- managers_1466289798 managers FOREIGN KEY (person_id) REFERENCES people (person_id) Mar 4 2009 9:12PM people_17556708171 PRIMARY KEY INDEX ( person_id) : CLUSTERED, FOREIGN REFERENCE Mar 4 2009 9:11PM Total Number of Referential Constraints: 1 Details: -- Number of references made by this table: 0 -- Number of references to this table: 1 -- Number of self references to this table: 0 Formula for Calculation: Total Number of Referential Constraints = Number of references made by this table + Number of references made to this table - Number of self references within this table (2 rows affected, return status = 0) 343:1> sp__revtable managers 343:2> go -- Table_DDL ---------------------------------------------------------------------- CREATE TABLE managers ( person_id int identity NOT NULL, status varchar(30) NULL, manager_name varchar(50) NULL ) ----------------------------------------------------------------------------------------------------- ------------------- ALTER TABLE managers ADD PRIMARY KEY CLUSTERED ( person_id) constraint_desc ----------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------- --------------------------------------------- ALTER TABLE managers ADD CONSTRAINT managers_1466289798 FOREIGN KEY (person_id) REFERENCES people(person_id) --------------------------------------- -- No Indexes found in Current Database (return status = 0) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---