关于SQL Server 2008中变量定义的问题

2024-12-01 00:44:23
推荐回答(2个)
回答1:

这个问题我也在纳闷。不过你的变量的长度并没有超过字段的长度,虽然看似浪费内存,不过,在你数据库里面的数据量不多是时候这些都可以忽略不计的,性能上内存上影响不大,毕竟这不是一个关键性问题,在很多数据处理方面总会碰到这个问题,公司设计的时候也是这么处理的,所以我猜测,128和50并没有什么大问题,希望对你有所帮助

回答2:

数据库中的变量定义是不会事先开辟内存的,就像程序中的变量要实例化才回去分配空间
假如定义时就分配的话,那么在同一个存储过程中定义多个varchar(max)--2GB
那服务器直接挂了~
而且像varchar这种变长类型,只会分配录入长度的空间,不会把空间全部分配出来
而想char这种定长类型则会全部分配长度空间
变量在存储过程中的生命周期可谓是稍纵即逝,存储过程如果要执行个几十分钟那就要疯掉了(不过有的公司需要大数据量存储的话可能会这样)