SQL服务器添加整型变量,结束串

问题描述:

的我要生成SQL Server中环一些整数,并将其添加到结束串的就是漫长的数SQL服务器添加整型变量,结束串

Declare @i int 
Set @i = 10 

While @i < 45 
Begin 
    insert into AllowedStudents (GroupID, StudentNumber) 
    values ('1', '9210410' + @i) 

    SET @i = @i + 1 
End 

但是当插入过程结束我看到这个结果:

28240 1 9210420 
28241 1 9210421 
28242 1 9210422 
28243 1 9210423 

28240 1 921041020 
28241 1 921041021 
28242 1 921041022 
28243 1 921041023 

从转换@i 0至varchar

像这样

insert into AllowedStudents (GroupID, StudentNumber) 
values ('1', '9210410' + Convert(varchar(50), @i)) 

SQLFIDDLE

+0

它的工作...感谢 –

这是因为在SQL Server类型的优先顺序。 Int数据类型的优先级高于varchar数据类型,导致varchar被隐式转换为int类型。您需要明确地将您的int变量转换为varchar数据类型。

'9210410' + cast(@i as varchar(100)) 

'9210410' + convert(varchar(100), @i) 

有关数据类型优先级详情,请访问https://msdn.microsoft.com/en-us/library/ms190309.aspx

+0

这个答案的工作:

这可以用castconvert函数来完成太...谢谢 –