Sql-Server
varchar 大小在臨時表中是否重要?
在我妻子的工作中,關於僅使用儲存過程中臨時表中
varchar(255)
的所有欄位的問題存在爭議。varchar
基本上,一個陣營希望使用 255,因為即使定義發生變化,它也始終有效,而另一個陣營希望堅持源表中的大小以潛在的性能改進。表演營對嗎?還有其他影響嗎?他們正在使用 SQL Server。
根據您使用臨時表的方式,您可能會遇到數據截斷問題。
這個例子有點做作,但它說明了我的觀點。例子:
- 您的使用者表列是 varchar(50)。
- 您的臨時表列是 varchar(255)。
- 您在使用者表的該列中有一條包含 45 個字元的記錄。
- 在您的過程中,在將該臨時表合併到您的使用者表之前,將“ - for the win”連接到該列的末尾。
臨時表很樂意接受長度為 59 的新 varchar 值。但是,您的使用者表不能。根據您在過程中處理此問題的方式,這可能會導致截斷或錯誤。
除非您記錄並說明這些問題,否則您的程序可能會以意想不到的方式執行。
就個人而言,我不認為這個問題的答案是 100% 正確的。這實際上取決於您如何使用這些臨時表。
希望這可以幫助