Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 681453
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T01:29:06+00:00 2026-05-14T01:29:06+00:00

We got a script to disable FK constraints by passing ‘D’ deactivate ‘A’ for

  • 0

We got a script to disable FK constraints by passing ‘D’ deactivate ‘A’ for activate.
Once these are disabled, they get enabled back again after couple of hours or a day.
What could be the reason ?

Script is as below:

CREATE PROCEDURE [dbo].[sp_DisableEnableForeignKeys] @PutFK CHAR(1)
as

 DECLARE @IdFK integer
 DECLARE @ForeignKey sysname
 DECLARE @ChildTable sysname
 DECLARE @ParentTable sysname
 DECLARE @ParentColumn sysname
 DECLARE @ChildColumn sysname
 DECLARE @ParentColumns varchar(1000)
  DECLARE @ChildColumns varchar(1000)



    IF EXISTS (SELECT 1 FROM sysobjects where type = 'U' and Name ='metForeignKeys')
        DROP TABLE metForeignKeys


    SELECT * INTO metForeignKeys FROM 
    (
    SELECT 
        FK.constid as IdFK,
        FK.KeyNo,
        sofk.name as [Foreign Key Name],
        soch.name as [Child Table],
        scch.name as [Child Column],
        sopa.name as [Parent Table],
        scpa.name as [Parent Column]
    FROM 
        sysforeignkeys FK

    INNER JOIN sysobjects sofk on FK.constId = sofk.id
    INNER JOIN sysobjects soch on FK.fkeyid = soch.id
    INNER JOIN syscolumns scch on FK.fkeyid = scch.id and FK.fkey = scch.colid
    INNER JOIN sysobjects sopa on FK.rkeyid = sopa.id
    INNER JOIN syscolumns scpa on FK.rkeyid = scpa.id and FK.rkey = scpa.colid
    )T  


    DECLARE met_C_Delete CURSOR FOR SELECT DISTINCT IdFK, [Child Table] FROM metForeignKeys ORDER BY [Child Table]
    OPEN met_C_Delete

    FETCH NEXT FROM met_C_Delete into @IdFK, @ChildTable
    WHILE @@Fetch_Status = 0
    BEGIN
        SELECT @ForeignKey = [Foreign Key Name], @ChildTable = [Child Table], @ParentTable = [Parent Table] 
            FROM metForeignKeys where IdFK = @IdFK

        IF @PutFK = 'D'
        BEGIN
            EXEC( 'ALTER TABLE [' + @ChildTable + '] with check nocheck constraint ' + @ForeignKey)

                IF @@ERROR = 0
                    BEGIN
                        --PRINT 'Disabled FK Constraint ' + @ForeignKey + ' on table ' + @ChildTable + ' referencing '+@ParentTable
                        PRINT @ChildTable+' - Disabled FK Constraint ' + @ForeignKey + ' referencing '+@ParentTable
                    END
                ELSE
                    BEGIN
                        PRINT 'Error disabling FK Constraint ' + @ForeignKey + ' on table ' + @ChildTable + ' referencing '+@ParentTable
                        --PRINT @ChildTable+' - Enabled FK Constraint ' + @ForeignKey + ' referencing '+@ParentTable
                    END
                END
        ELSE
            BEGIN
                EXEC( 'ALTER TABLE [' + @ChildTable + '] with check check constraint ' + @ForeignKey)
                IF @@ERROR = 0
                    BEGIN
                        PRINT 'Enabled FK Constraint ' + @ForeignKey + ' on table ' + @ChildTable + ' referencing '+@ParentTable
                    END
                ELSE
                    BEGIN
                        PRINT 'Error enabling FK Constraint ' + @ForeignKey + ' on table ' + @ChildTable + ' referencing '+@ParentTable
                    END
            END

        FETCH NEXT FROM met_C_Delete into @IdFK, @ChildTable
    END

    CLOSE met_C_Delete
    DEALLOCATE met_C_Delete
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T01:29:07+00:00Added an answer on May 14, 2026 at 1:29 am

    A foreign key will not reenable itself automatically on an out-of-the-box SQL Server installation.

    Perhaps a DBA was worried that developers would forget to reenable constraints (a common problem!) and wrote a job to periodically reenable any disabled constraints?

    If you are having trouble tracking this down, you could define a DDL trigger on the database to log the times and user names of all modifications (ALTER_TABLE event).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 545k
  • Answers 545k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • added an answer Well, start off by thinking of which bits of data… May 17, 2026 at 9:17 am
  • added an answer For this task it is a good idea to use… May 17, 2026 at 9:15 am
  • added an answer This is exactly how the Skyhook database (built into many… May 17, 2026 at 9:15 am

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Related Questions

I've got a script that takes a user uploaded RTF document and merges in
I've got a script that dynamically calls and displays images from a directory, what
I have got a python script which is creating an ODBC connection. The ODBC
I've got a php script. Most of the time the script returns html, which
I've got a PHP script which I'm running from a command line (windows) that
I've got a PHP script that needs to invoke a shell script but doesn't
I've got a Perl script that needs to execute another Perl script. This second
I've got a PHP script on a shared webhost that selects from ~300 'feeds'
I got a message saying script xyz.py returned exit code 0 . What does
I've already got a NAnt build script that builds/runs tests/zips web project together, etc.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.