varchar 大小在临时表中是否重要?

Bri*_*kel 16 performance sql-server datatypes temporary-tables

在我妻子的工作中,关于仅使用存储过程中临时表中的varchar(255)所有varchar字段存在争议。基本上,一个阵营希望使用 255,因为即使定义发生变化它也始终有效,而另一个阵营则希望坚持使用源表中的大小以提高潜在的性能。

表演营对吗?是否有其他影响?他们正在使用 SQL Server。

Mat*_*t M 6

根据您使用临时表的方式,您可能会遇到数据截断问题。

这个例子有点做作,但它说明了我的观点。例子:

  1. 您的用户表列是 varchar(50)。
  2. 您的临时表列是 varchar(255)。
  3. 您的用户表的该列中有 45 个字符的记录。
  4. 在您的过程中,在将该临时表合并到您的用户表之前,您将“-为胜利”连接到该列的末尾。

临时表很乐意接受长度为 59 的新 varchar 值。但是,您的用户表不能。根据您在过程中处理此问题的方式,这可能会导致截断或错误。

除非您记录并说明这些问题,否则您的程序可能会以意想不到的方式执行。

就我个人而言,我不认为这个问题的答案是 100% 正确的。这实际上取决于您如何使用这些临时表。

希望这可以帮助