db-ddlutils-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Dudziak (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DDLUTILS-127) MsSqlBuilder does not drop foreign keys to a table before dropping the table.
Date Sun, 03 Dec 2006 07:47:23 GMT
    [ http://issues.apache.org/jira/browse/DDLUTILS-127?page=comments#action_12455153 ] 
            
Thomas Dudziak commented on DDLUTILS-127:
-----------------------------------------

Could you please post the SQL in the database and the target model that you used ?
Also, please note that DdlUtils won't remove foreign keys automatically. It will only do so
if the foreign key is no longer in the target model (though it could certainly improved to
generate an error before actually changing the database).

> MsSqlBuilder does not drop foreign keys to a table before dropping the table.
> -----------------------------------------------------------------------------
>
>                 Key: DDLUTILS-127
>                 URL: http://issues.apache.org/jira/browse/DDLUTILS-127
>             Project: DdlUtils
>          Issue Type: Bug
>          Components: Core - SqlServer
>            Reporter: Christoffer Hammarström
>         Assigned To: Thomas Dudziak
>             Fix For: 1.0
>
>         Attachments: DDLUTILS-127.patch
>
>
> Could not drop object 'Tmp_categories' because it is referenced by a FOREIGN KEY constraint.
Query: IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'Tmp_categories')
> BEGIN
>   DECLARE @tablename nvarchar(256), @constraintname nvarchar(256)
>   DECLARE refcursor CURSOR FOR
>   SELECT object_name(objs.parent_obj) tablename, objs.name constraintname
>     FROM sysobjects objs JOIN sysconstraints cons ON objs.id = cons.constid
>     WHERE objs.xtype != 'PK' AND object_name(objs.parent_obj) = 'Tmp_categories'  OPEN
refcursor
>   FETCH NEXT FROM refcursor INTO @tablename, @constraintname
>   WHILE @@FETCH_STATUS = 0
>     BEGIN
>       EXEC ('ALTER TABLE '+@tablename+' DROP CONSTRAINT '+@constraintname)
>       FETCH NEXT FROM refcursor INTO @tablename, @constraintname
>     END
>   CLOSE refcursor
>   DEALLOCATE refcursor
>   DROP TABLE Tmp_categories
> END;

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message