Sql-Server

如何在 SQL Server 2014 中更改 PRIMARY KEY 中的 VARCHAR 長度

  • December 6, 2017

我需要將VARCHARSQL Server 2014 中庫表的程式碼列中的長度從 20 更改為 25,但 SSMS 想要刪除並重新創建我的所有相關庫錶鍊接到的表。

有沒有辦法在VARCHAR不刪除所有表的情況下更改 PRIMARY KEY 的長度?

當你增加長度時,你可以做一個改變列,例如:

CREATE TABLE dbo.T1
   (
     C1 VARCHAR(20) NOT NULL
                    CONSTRAINT PK_T1 PRIMARY KEY ,
     C2 INT
   );
GO

INSERT  INTO dbo.T1
VALUES  ( 'test', 1 ),
       ( 'test2', 2 );
GO

ALTER TABLE dbo.T1 ALTER COLUMN C1 VARCHAR(25) NOT NULL;

在https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-transact-sql進一步閱讀ALTER TABLE語法

您將需要使用該ALTER TABLE命令,如 Nic 的回答所示。但是,問題是存在引用您的表的外鍵。

為了解決這個問題,您需要編寫外鍵腳本,刪除它們以進行更改,然後在更新表後重新創建它們。

這是Aaron Bertrand 的腳本連結,用於編寫刪除和創建外鍵的命令。

注意:我還將更新使用它的其他表中的列,以確保所有允許的值都適合那些其他表。

引用自:https://dba.stackexchange.com/questions/168256