none
關於 row size 一問 RRS feed

  • 問題

  • 請問各位,

    我在 SQL Server 2000 中新增一個 table (大約有 50 個欄位), 之後我使用"Generate SQL Script" 去產生一個檔案.  我將此檔案在同一 SQL Server (但不同 Database) 中執行. 我得出以下 Message

    Warning: The table 'TABLE_ABC' has been created but
    its maximum row size (10015) exceeds the maximum number of bytes per row (8060).
    INSERT or UPDATE of a row in this table will fail if the resulting row length exceeds 8060 bytes.

    之後我看書得知 row size 的限制, 我的問題是:

    1, 為什麼在我新增 table 時, 系統沒有給我此 warning message.
    2, 有什麼方法可以執行這個檔案?

    Thank You!
    Tony

     

    2007年1月18日 上午 04:39

解答

  • 您好:
    SQL Server 規定每一筆資料列的大小最大只能 8,060 Bytes(也就是 8KB),因此會出現您所稱的錯誤原因,就是資料表的欄位所要儲存的大小超過 8KB(每個欄位大小的加總超過 8KB),欲讓該 Script 可以被執行,請修改資料表結構,比方說縮減欄位的大小,或是針對資料進行正規化。

    何以在新增資料表時,沒有出現該錯誤訊息,猜測應該是 SQL Server Enterprise Manager 把錯誤訊息抑制住了,您可以嘗試在已經建立好的資料表新增資料,看看是否會出現錯誤提示訊息。

    2007年1月18日 上午 06:24
    版主

所有回覆

  • 您好:
    SQL Server 規定每一筆資料列的大小最大只能 8,060 Bytes(也就是 8KB),因此會出現您所稱的錯誤原因,就是資料表的欄位所要儲存的大小超過 8KB(每個欄位大小的加總超過 8KB),欲讓該 Script 可以被執行,請修改資料表結構,比方說縮減欄位的大小,或是針對資料進行正規化。

    何以在新增資料表時,沒有出現該錯誤訊息,猜測應該是 SQL Server Enterprise Manager 把錯誤訊息抑制住了,您可以嘗試在已經建立好的資料表新增資料,看看是否會出現錯誤提示訊息。

    2007年1月18日 上午 06:24
    版主
  • Ok Thank you!
    2007年1月18日 上午 06:45