当前位置: 代码迷 >> Sql Server >> 一大清早,问个存储过程参数无效的有关问题
  详细解决方案

一大清早,问个存储过程参数无效的有关问题

热度:54   发布时间:2016-04-27 17:22:34.0
一大清早,问个存储过程参数无效的问题?
[email protected],可是一直都得不到值,用单步调试也也找到原因.
大家帮忙看一下原因啊,存储过程如下:
CREATE PROCEDURE Sp_Uptotalday
-- Add the parameters for the stored procedure here
@sssj varchar(8),
@time varchar(8),
@rq varchar(10),
@kqkh varchar(10)
AS
BEGIN
  DECLARE @sql varchar(100)
  DECLARE @oldtime varchar(50)
  set @sql='select [email protected][email protected]+' from totalday where [email protected]+''' and [email protected]+''''
  exec (@sql)
END

------解决方案--------------------
不知道你的oldtime是干啥用的, 下面这个存储过程很顺利地取出了表中的值.

SQL code
create table totalday(swsb varchar(50), swxb varchar(50), xwsb varchar(50), xwxb varchar(50), wssb varchar(50),  wsxb varchar(50), kqkh varchar(50), rq varchar(50))insert totaldayselect '1', '2', '3', '4', '5', '6', '001', '2007-10-20'GOcreate Procedure Sp_Uptotalday@sssj varchar(8),@time varchar(50) output,@rq varchar(10),@kqkh varchar(10)ASBegin    Declare @sql nvarchar(100)    declare @oldtime varchar(50)    set @sql = 'SELECT @oldtime = ' + @sssj + ' from totalday where rq = ''' + @rq + ''' and kqkh=''' + @kqkh + ''''    exec sp_executesql @sql, [email protected] varchar(50) OUTPUT', @oldtime OUTPUT    set @time = @oldtimeENDGOdeclare @time varchar(50)exec Sp_Uptotalday 'swsb', @time OUTPUT, '2007-10-20', '001'select @timeGOdrop table totaldaydrop procedure Sp_Uptotalday
  相关解决方案