直到最近我还没有想到这个问题,我对我的任务之一感到不安:
因此,在我的商店程序中,我声明了一个数据类型为@temp_address
的参数VARCHAR
。
此@temp_address
将临时存储多列的结果,例如:
SET @temp_address = (Select Address1 + Address2 + City + State + ZipCode + Country
FROM some_table)
因为我真的不确切知道 - 现在是完整地址的组合大小,我只是使用VARCHAR(MAX)
。但是,我的老板拒绝了我的工作,并告诉我不要使用MAX
,我必须指定一个尺寸。
虽然我可以找出最大可能的大小(通过查看每个列的大小并总结它们),但我真的很好奇,为什么我们需要VARCHAR(N)
而不仅仅是简单VARCHAR(MAX)
?
同样适用于NVARCHAR(MAX)
vs NVARCHAR(N)