2016-04-21 82 views
0

我有超過100列的表是什麼varchar(200)。我們正在改變所有列nvarchar但在運行ALTER腳本時,我們得到這樣的警告消息:SQL Server:最大行大小警告

警告:表「表格名」被創建,但其最大行 大小超過了允許的最大值8060字節。插入或更新到 如果結果行超出大小限制,該表將失敗。

我應該爲此感到驚慌,還是我可以忽略它?

+2

我會擔心有一張大桌子開始,無論發生什麼事情都需要這麼做嗎?你可以重新訪問一些數據類型並減少長度嗎? –

+0

可能是將這100列歸一化爲更易於管理的好時機。 –

+0

忽略它?真?您的插入和/或更新現在可能開始失敗,並且您想忽略它? –

回答

1

即使沒有移動到nvarchar,問題也是存在的 - 每100列中有200字節是每行20000字節。 SQL Server中的最大行大小爲8060,如警告文本中所示。這只是一個警告,因爲列是var char這意味着它們佔用的空間太多,因爲它們實際上需要存儲從零開始的當前數據。但是,如果所有列的總長度超過了任何行的最大限制 - 它將失敗 - 服務器將無法存儲該行。這就是這個警告的意義所在。

+0

所有字段將永遠不會填充插入該表中的任何行(最多可能爲30個)。但我明白你的意思。應該刪除不需要的... – hs2d