Sql-Server

varchar 大小在臨時表中是否重要?

  • November 20, 2012

在我妻子的工作中,關於僅使用儲存過程中臨時表中varchar(255)的所有欄位的問題存在爭議。varchar基本上,一個陣營希望使用 255,因為即使定義發生變化,它也始終有效,而另一個陣營希望堅持源表中的大小以潛在的性能改進。

表演營對嗎?還有其他影響嗎?他們正在使用 SQL Server。

根據您使用臨時表的方式,您可能會遇到數據截斷問題。

這個例子有點做作,但它說明了我的觀點。例子:

  1. 您的使用者表列是 varchar(50)。
  2. 您的臨時表列是 varchar(255)。
  3. 您在使用者表的該列中有一條包含 45 個字元的記錄。
  4. 在您的過程中,在將該臨時表合併到您的使用者表之前,將“ - for the win”連接到該列的末尾。

臨時表很樂意接受長度為 59 的新 varchar 值。但是,您的使用者表不能。根據您在過程中處理此問題的方式,這可能會導致截斷或錯誤。

除非您記錄並說明這些問題,否則您的程序可能會以意想不到的方式執行。

就個人而言,我不認為這個問題的答案是 100% 正確的。這實際上取決於您如何使用這些臨時表。

希望這可以幫助

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