DECLARE @year VARCHAR ,@month VARCHAR='' SET @year = '' PRINT @year结果是:2 DECLARE @year VARCHAR(4) ,@month VARCHAR='' SET @year = '' PRINT @year 结果是:2015varchar是否定义长度,还是有区别的,不定义长度的时候,并非我想象中按照实际赋值自动填充,似乎默认为1