日期:2014-05-17  浏览次数:20442 次

存储过程的参数类型为varchar不能自动增长
我的存储过程的参数为varchar,但长度不能自动增长,超过长度就截取了,实际变成了char。有什么方法可以使长度自动增长?谢过

--过程
create proc test_proc @code varchar(5)
as
select @code

--调试
exec test_proc '123456'

--输出
--12345

------解决方案--------------------
那你就把长度放大一点, 估算一下,比如放到varchar(30),60,etc
------解决方案--------------------
varchar(5)就定义长点嘛

------解决方案--------------------
ALTER PROC TEST_PROC @CODE VARCHAR(MAX)
AS
SELECT @CODE

------解决方案--------------------
varchar可以定义足够长,实际使用的长度看实际的字符串长度。但是如果将一个长度大于varchar定义时指定的长度时,就会截断。可以这么说,varchar具有自动缩短的功能,但不能自动加长。
------解决方案--------------------
自增长不是这么理解的