0
今天我正面臨一個奇怪的消息。我不知道,如果它僅僅是一個錯誤:減少數據類型大小會導致索引超過最大大小?
該表由ASP.NET身份創建。但是,他們使用nvarchar(450)
作爲Id,因爲索引超過了900字節,所以我不能在其他表中使用它。因此,我試圖減少它,但首先如何創建PK_AspNetUserRoles
?這只是一個SSMS錯誤?
今天我正面臨一個奇怪的消息。我不知道,如果它僅僅是一個錯誤:減少數據類型大小會導致索引超過最大大小?
該表由ASP.NET身份創建。但是,他們使用nvarchar(450)
作爲Id,因爲索引超過了900字節,所以我不能在其他表中使用它。因此,我試圖減少它,但首先如何創建PK_AspNetUserRoles
?這只是一個SSMS錯誤?
什麼是您的SSMS版本? 恕我直言,這是一個錯誤,我不能在12.0.4100.1中重現此問題。
你不能沒有重新創建索引更改列類型,這樣你可以收到錯誤可能是:
消息5074,級別16,狀態1,4號線 指數「PK_AspNetUserRoles」是依賴於列'用戶名'。 消息4922,級別16,狀態9,行4 ALTER TABLE ALTER COLUMN UserId失敗,因爲一個或多個對象訪問此列。
但我的SSMS只是默默地做了以下內容:
無錯誤顯示
我的版本是'13.0.16106.4'。在那個對話框中,我嘗試點擊是,SSMS自動將所有外鍵的數據類型更改爲新數據類型('nvarchar(450)'爲'nvarchar(150)') –
外鍵?你的文章沒有提到他們,顯示的錯誤是關於主鍵 – sepupic
對不起。我改變了'AspNetUsers'表的'Id'列。 AspNetUserRoles的'UserId'指的是'Id',它也是主鍵的一部分。 –