How can I drop a table if there is a foreign key constraint in SQL Server?

后端 未结 8 1330
陌清茗
陌清茗 2020-12-15 17:43

I have the following:

DROP TABLE [dbo].[ExtraUserInformation];
DROP TABLE [dbo].[UserProfile];
DROP TABLE [dbo].[webpages_Membership];
DROP TABLE [dbo].[webp         


        
8条回答
  •  长情又很酷
    2020-12-15 17:58

        --Find and drop the constraints
    
        DECLARE @dynamicSQL VARCHAR(MAX)
        DECLARE MY_CURSOR CURSOR 
    
        LOCAL STATIC READ_ONLY FORWARD_ONLY 
        FOR
            SELECT dynamicSQL = 'ALTER TABLE [' +  OBJECT_SCHEMA_NAME(parent_object_id) + '].[' + OBJECT_NAME(parent_object_id) + '] DROP CONSTRAINT [' + name + ']'
            FROM sys.foreign_keys
            WHERE object_name(referenced_object_id)  in ('table1', 'table2', 'table3')
        OPEN MY_CURSOR
        FETCH NEXT FROM MY_CURSOR INTO @dynamicSQL
        WHILE @@FETCH_STATUS = 0
        BEGIN
    
            PRINT @dynamicSQL
            EXEC (@dynamicSQL)
    
            FETCH NEXT FROM MY_CURSOR INTO @dynamicSQL
        END
        CLOSE MY_CURSOR
        DEALLOCATE MY_CURSOR
    
    
        -- Drop tables
        DROP 'table1'
        DROP 'table2'
        DROP 'table3'
    

提交回复
热议问题