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

sql 存储过程 语法 把2个定义的字符串合并成一个字符串
CREATE PROCEDURE proc_inforin
(
@语文1 [float],@语文2 [float],@语文3 [float],
)
as
BEGIN
DECLARE @语文总1 [float];
declare @i [int];
set @i=1 
while @i<=3
begin 
if  '@语文' & @i is not null 
set @语文总1 = '@语文' & @i   +@语文总1
set @i=@i+1 
end

INSERT INTO [zongchenjibiao].[dbo].[zongchenjibiao]
 [语文1],[语文2],[语文3],[语文总1]
 
     VALUES(
@语文1,@语文2,@语文3,@语文总1,
)
END
GO


连接字符是用 & 还是+ 还是什么   还是不可以这么做。。。等等    会提示的错误   @语文 转化为int 失败;;;@i转化为float失败等等
------解决方案--------------------
--这里应该是

CREATE PROCEDURE proc_inforin
(
@语文1 [float],@语文2 [float],@语文3 [float]
)
as
BEGIN
DECLARE @语文总1 varchar(8000)
declare @i [int]
set @i=1  
while @i<=3
if '@语文'  is not null or @i is null
begin  
set @语文总1 = '@语文' & ltrim(@i) +@语文总1
set @i=@i+1  
end
end

------解决方案--------------------

CREATE PROCEDURE proc_inforin
(
[@语文1] float=0.0,
[@语文2] float=0.0,
[@语文3] float=0.0
)
as
BEGIN
DECLARE [@语文总1] float
set @语文总1 = @语文1 +@语文2+@语文3
end