Step by Step to drop foreign keys, please? :(

  • Apparently I have no idea what I'm doing...

    I have Admin / Enterprise Manager / Query Analyzer access to our SQL 2000 server. I have about a half dozen tables that I need to drop but can't b/c they are linked by foreign keys.

    If someone could please explain to me how to find the names of the foreign keys and then drop them, that would be just totally awesome.

    Thank you...

  • apologies... I finally figured it out...

    This query will show you all the names:

    SELECT

    FK_Table = FK.TABLE_NAME,

    FK_Column = CU.COLUMN_NAME,

    PK_Table = PK.TABLE_NAME,

    PK_Column = PT.COLUMN_NAME,

    Constraint_Name = C.CONSTRAINT_NAME

    FROM

    INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C

    INNER JOIN

    INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK

    ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME

    INNER JOIN

    INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK

    ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME

    INNER JOIN

    INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU

    ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME

    INNER JOIN

    (

    SELECT

    i1.TABLE_NAME, i2.COLUMN_NAME

    FROM

    INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1

    INNER JOIN

    INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2

    ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME

    WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY'

    ) PT

    ON PT.TABLE_NAME = PK.TABLE_NAME

    -- optional:

    ORDER BY

    1,2,3,4

    then you can easily drop them one-by-one with:

    ALTER TABLE [TableName] DROP CONSTRAINT [Name From Above]

    I kept finding "DROP FOREIGN KEY" but it should be "CONSTRAINT"

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic. Login to reply