如何擴充主鍵的長度(DISABLE And ENABLE CHANGE_TRACKING)

來源:互聯網
上載者:User

由於SQL效能最佳化或業務需求,往往在建立Table後需要擴充主鍵的長度,直接進行Alter Column會提示"ALTER TABLE ALTER COLUMN XXX failed because one or more objects access this colum",導致主鍵無法修改。這時可以使用DISABLE And ENABLE CHANGE_TRACKING臨時取消約束,修改後再啟用約束操作。

IF EXISTS ( SELECT  1
            FROM    sys.columns
            WHERE   name = '要修改的欄位'
                    AND object_id = OBJECT_ID('要修改的表') )
    BEGIN
        IF EXISTS ( SELECT  1
                    FROM    sys.change_tracking_tables
                    WHERE   object_id = OBJECT_ID('要修改的表') )
            BEGIN
                ALTER TABLE 要修改的表 DISABLE CHANGE_TRACKING  -- disable tracking
                ALTER TABLE 要修改的表 ALTER COLUMN 要修改的欄位 VARCHAR(50) NOT NULL
                ALTER TABLE 要修改的表 ENABLE CHANGE_TRACKING -- enable tracking
            END 
        ELSE
            BEGIN
                ALTER TABLE 要修改的表 ALTER COLUMN 要修改的欄位 VARCHAR(50) NOT NULL
            END
    END

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.