请高手帮我看看这个过程有什么问题 怎么执行的时候说有错误!过程语法没有错误

chang1216 2014-05-25 01:55:07
CREATE PROCEDURE [compute3] 
--定义输出参数
@#2冷却水泵电流 real output---1
AS
--定义存储过程内部变量
declare @a varchar(100),
@i int,
@b varchar(100)
,@sql nvarchar(4000) --这里要定义为nvarchar类型
,@#2冷却水泵电流1 real
--给定义的变量赋初值0
set @#2冷却水泵电流=0
--给定义的内部变量赋初值0

set @#2冷却水泵电流1=0
set @i=day(getdate()) --循环取出需要的各值的和
while @i>0
begin
set @a='d'+convert(char(8),getdate()-@i+1,112) --得到时间表名
set @b=convert(char(8),getdate()-@i+1,112)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].['+@a+']') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
begin
--print @a
--查询数据库中的参数,内部变量=sum(字段名)
set @sql='select
@#2冷却水泵电流1=sum(#2冷却水泵电流) from '+@a+' where 时间='+@b+'0800 or 时间='+@b+'1600 or 时间 ='+@b+'2355' --动态得到表
exec sp_executesql @sql,N'@#2冷却水泵电流 real output ',
@#2冷却水泵电流1 output
--输出内部变量-
set @#2冷却水泵电流=isnull(@#2冷却水泵电流1,0)+@#2冷却水泵电流
set @i=@i-1
end
else
set @i=@i-1
end
GO


#2冷却水泵电流 这个是我的字段名称 在过程里这样的字段会有问题吗?谢谢大虾们帮我看看谢谢!!
...全文
186 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
---涛声依旧--- 2014-05-26
  • 打赏
  • 举报
回复

--用[#2冷却水泵电流]就行了
CREATE PROCEDURE [compute3] 
 --定义输出参数
@#2冷却水泵电流 real output---1
AS
--定义存储过程内部变量
declare @a varchar(100),
@i int,
@b varchar(100)
,@sql nvarchar(4000)  --这里要定义为nvarchar类型
,@#2冷却水泵电流1 real        
--给定义的变量赋初值0
set @#2冷却水泵电流=0
--给定义的内部变量赋初值0

set @#2冷却水泵电流1=0
set @i=day(getdate())  --循环取出需要的各值的和
while @i>0
begin
	set @a='d'+convert(char(8),getdate()-@i+1,112) --得到时间表名
	set @b=convert(char(8),getdate()-@i+1,112)
	if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].['+@a+']') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
	begin
		--print @a
                           --查询数据库中的参数,内部变量=sum(字段名)
set @sql='select 
@#2冷却水泵电流1=sum([#2冷却水泵电流]) from '+@a+' where 时间='+@b+'0800 or 时间='+@b+'1600 or 时间   ='+@b+'2355' --动态得到表
exec sp_executesql @sql,N'@#2冷却水泵电流 real output ',
@#2冷却水泵电流1 output
    --输出内部变量-
 		set @#2冷却水泵电流=isnull(@#2冷却水泵电流1,0)+@#2冷却水泵电流        
		set @i=@i-1
	end
             else
	set @i=@i-1
 end
GO
--小F-- 2014-05-25
  • 打赏
  • 举报
回复
你的字段名称加个[]或者''试试 当然在动态语句中 需要注意 你可以加成 '''#2冷却水泵电流'''试试
haitao 2014-05-25
  • 打赏
  • 举报
回复
动态sql的错误,是在执行时才发现的 在 exec sp_executesql @sql 前,print @sql看看,结果能否粘贴到查询分析器里执行
chang1216 2014-05-25
  • 打赏
  • 举报
回复
怎么会没有人回答呢?好久没来论坛了!!请大家帮忙看看!!谢谢了

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧