日期:2014-05-18  浏览次数:20489 次

+连接符 连接两个数字字符串出现 溢出了整数列的问题
declare   @GuID     varchar(8000)
set   @GuID= '330203000 '+ '013 '

出现
:转换   varchar   值   '330203000013 '   时溢出了整数列。超过了其中最大的整数值。
不知道为啥?

------解决方案--------------------
把int改为bigint
------解决方案--------------------
直接定義為varchar沒有問題啊。


Create function getGuId
(
@class varchar(50),
@newsDate varchar(500),
@id varchar(50)

)
RETURNS varchar(5000)
as
begin
declare @GuID varchar(8000),@tempID varchar(500)
declare @GuIDBigInt varchar(8000)
set @GuIDBigInt= '330203000 '+ '000000000000033 '
set @GuIDBigInt=Cast(@GuIDBigInt as varchar(50))+cast(year(@newsDate) as varchar(50))


if len(@id) <7
begin
declare @i as int
declare @numZero as int
set @numZero=7-len(@id)
set @i=1
while @i <=@numZero
begin
set @id= '0 '+@id
set @i=@i+1
end
end

set @GuID=cast(@GuIDBigInt as varchar(100))+cast(@id as varchar(100))
--
-- set @GuID=cast(@GuIDBigInt as varchar(100))
return @GuID
end
GO
Select dbo.getGuId( '1 ', '20070509 ', '1 ')

GO
Drop Function getGuId