一个简单的问题,受累哪位兄弟帮一下
CREATE PROCEDURE SP_CostPoint
@FirstPara int, --一级编号
@SecondPara int, --二级编号
@UpCode varchar(20) output, --上行指令
@AddressCode varchar(20) output, --地址码
@CostShow varchar(20) output --资费说明
AS
declare @strSQL varchar(500) -- 主语句
SET NOCOUNT on
begin
set @strSQL = "select top 1 @UpCode=UpCode,@AddressCode=AddressCode,@CostShow =CostShow from SecondLevel where FirstID= " + @FirstPara + " and SecondID= " + @SecondPara
exec (@strSQL)
return
end
SET NOCOUNT off
GO
我是这样调用的:
declare @UpCode varchar(20),@AddressCode varchar(20),@CostShow varchar(20)
execute SP_CostPoint 1,1,@UpCode output,@AddressCode output,@CostShow output
报错:
服务器: 消息 245,级别 16,状态 1,过程 SP_CostPoint,行 12
将 varchar 值 'select top 1 @UpCode=UpCode,@AddressCode=AddressCode,@CostShow =CostShow from SecondLevel where FirstID= ' 转换为数据类型为 int 的列时发生语法错误。
我传进来时是INT类型的啊,我初学存储过程,请大家指点,还有我哪里写的不合理也请大家说出来,谢谢了!
[解决办法]
"符号 似乎 不是 SQL 的字符限定符号吧???
'是!
[解决办法]
CREATE PROCEDURE SP_CostPoint
@FirstPara int, --一级编号
@SecondPara int, --二级编号
@UpCode varchar(20) output, --上行指令
@AddressCode varchar(20) output, --地址码
@CostShow varchar(20) output --资费说明
AS
declare @strSQL varchar(500) -- 主语句
SET NOCOUNT on
begin
select top 1 @UpCode=UpCode,@AddressCode=AddressCode,@CostShow =CostShow
from SecondLevel
where FirstID=@FirstPara and SecondID=@SecondPara
end
SET NOCOUNT off
GO