早教吧作业答案频道 -->其他-->
写了一个存储过程,总提示“必须声明标量变量”,怎么改?存储过程如下:setANSINULLSONsetQUOTEDIDENTIFIERONgo--ALTERprocedure[dbo].[cbmtest]CREATEPROCEDUREcbmtestasbeginSETNOCOUNTON;@countint,@uni
题目详情
写了一个存储过程,总提示“必须声明标量变量”,怎么改?
存储过程如下:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
--ALTER procedure [dbo].[cbmtest]
CREATE PROCEDURE cbmtest
as
begin
SET NOCOUNT ON;
@count int,
@unitID varchar(20),
@projectCodeTag varchar(4),
@threeYearsAgo varchar(4),
@twoYearsAgo varchar(4),
@lastYear varchar(4),
@inTreeYearsAgo varchar(20),
@inTwoYearsAgo varchar(20),
@inLastYear varchar(20),
@outThreeYearsAgo varchar(20),
@outTwoYearsAgo varchar(20),
@outLastYear varchar(20)
set @count = 0;
delete from cw.dbo.CBMtemp;
insert into cw.dbo.CBMtemp (BMH,BMM,FZR)select distinct a.BMH,a.BMM,a.FZR from cwbackup.dbo.CBM a where a.TZ='45' and BMH like '8%' order by a.BMH;
select @count = count(*),BMH from cwbackup.dbo.CBMtemp;
while @count>0
begin
select @inTreeYearsAgo = sum(b.N6),@outTreeYearsAgo = sum(b.N7) from cwbackup.dbo.cwmc2010 b;
select @inTwoYearsAgo = sum(c.N6),@outTwoYearsAgo = sum(c.N7 )from cwbackup.dbo.cwmc2011 c;
select @inLastYear = sum(d.N6),@outLastYear = sum(d.N7) from cwbackup.dbo.cwmc2012 d;
update cwbackup.dbo.CBMtemp set inTreeYearsAgo = @inTreeYearsAgo,
inTwoYearsAgo = @inTwoYearsAgo,
inLastYear = @inLastYear,
outTreeYearsAgo = @outThreeYearsAgo,
outTwoYearsAgo = @outTwoYearsAgo,
outLastYear = @outLastYear;
end
END
提示的错误如下:
消息 102,级别 15,状态 1,过程 cbmtest,第 6 行
'@count' 附近有语法错误。
消息 137,级别 15,状态 1,过程 cbmtest,第 20 行
必须声明标量变量 "@count"。
消息 137,级别 15,状态 1,过程 cbmtest,第 23 行
必须声明标量变量 "@count"。
消息 137,级别 15,状态 2,过程 cbmtest,第 24 行
必须声明标量变量 "@count"。
消息 137,级别 15,状态 1,过程 cbmtest,第 26 行
必须声明标量变量 "@inTreeYearsAgo"。
消息 137,级别 15,状态 1,过程 cbmtest,第 27 行
必须声明标量变量 "@inTwoYearsAgo"。
消息 137,级别 15,状态 1,过程 cbmtest,第 28 行
必须声明标量变量 "@inLastYear"。
消息 137,级别 15,状态 2,过程 cbmtest,第 29 行
必须声明标量变量 "@inTreeYearsAgo"。
存储过程如下:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
--ALTER procedure [dbo].[cbmtest]
CREATE PROCEDURE cbmtest
as
begin
SET NOCOUNT ON;
@count int,
@unitID varchar(20),
@projectCodeTag varchar(4),
@threeYearsAgo varchar(4),
@twoYearsAgo varchar(4),
@lastYear varchar(4),
@inTreeYearsAgo varchar(20),
@inTwoYearsAgo varchar(20),
@inLastYear varchar(20),
@outThreeYearsAgo varchar(20),
@outTwoYearsAgo varchar(20),
@outLastYear varchar(20)
set @count = 0;
delete from cw.dbo.CBMtemp;
insert into cw.dbo.CBMtemp (BMH,BMM,FZR)select distinct a.BMH,a.BMM,a.FZR from cwbackup.dbo.CBM a where a.TZ='45' and BMH like '8%' order by a.BMH;
select @count = count(*),BMH from cwbackup.dbo.CBMtemp;
while @count>0
begin
select @inTreeYearsAgo = sum(b.N6),@outTreeYearsAgo = sum(b.N7) from cwbackup.dbo.cwmc2010 b;
select @inTwoYearsAgo = sum(c.N6),@outTwoYearsAgo = sum(c.N7 )from cwbackup.dbo.cwmc2011 c;
select @inLastYear = sum(d.N6),@outLastYear = sum(d.N7) from cwbackup.dbo.cwmc2012 d;
update cwbackup.dbo.CBMtemp set inTreeYearsAgo = @inTreeYearsAgo,
inTwoYearsAgo = @inTwoYearsAgo,
inLastYear = @inLastYear,
outTreeYearsAgo = @outThreeYearsAgo,
outTwoYearsAgo = @outTwoYearsAgo,
outLastYear = @outLastYear;
end
END
提示的错误如下:
消息 102,级别 15,状态 1,过程 cbmtest,第 6 行
'@count' 附近有语法错误。
消息 137,级别 15,状态 1,过程 cbmtest,第 20 行
必须声明标量变量 "@count"。
消息 137,级别 15,状态 1,过程 cbmtest,第 23 行
必须声明标量变量 "@count"。
消息 137,级别 15,状态 2,过程 cbmtest,第 24 行
必须声明标量变量 "@count"。
消息 137,级别 15,状态 1,过程 cbmtest,第 26 行
必须声明标量变量 "@inTreeYearsAgo"。
消息 137,级别 15,状态 1,过程 cbmtest,第 27 行
必须声明标量变量 "@inTwoYearsAgo"。
消息 137,级别 15,状态 1,过程 cbmtest,第 28 行
必须声明标量变量 "@inLastYear"。
消息 137,级别 15,状态 2,过程 cbmtest,第 29 行
必须声明标量变量 "@inTreeYearsAgo"。
▼优质解答
答案和解析
需要用 declare
比如:
declare @count int, @unitID varchar(20)
declare @projectCodeTag varchar(4)
比如:
declare @count int, @unitID varchar(20)
declare @projectCodeTag varchar(4)
看了 写了一个存储过程,总提示“必...的网友还看了以下:
如果说为了生存,为了远离贫困,人们可以心安理得的道德伦丧,热衷于去当看客,去嘲笑,去讽刺…即使他们 2020-04-06 …
“书画琴棋诗酒花,当年件件不离它.而今七字都更变,柴米油盐酱醋茶.”这首自我解嘲的《无题》诗,说明 2020-06-27 …
碧凤蝶的启示中州一个自然段讲的是什么启示这些碧凤蝶的蛹是智慧的,它有意无意地掌握了身边事物的规律. 2020-07-05 …
“为了”英语怎样说?例如:为了生存,必须.为了工作 2020-08-03 …
英语翻译矿工作为一个特殊的职业,他们的生命也受到了水、火、瓦斯等自然灾害和安全隐患的威胁.他们为了生 2020-12-01 …
“书画琴棋诗酒花,当年件件不离它。而今七字都更变,柴米油盐酱醋茶。”这首自我解嘲的《无题》诗,说明了 2020-12-09 …
2003年10月16日“神舟五号”载人航天飞船成功回收。载人航天飞船是一个相对封闭的人类生存环境,除 2020-12-09 …
英语作文(去野外训练)今年夏天我和朋友参加了一次野外生存训练.带了一些必需品,比如说有指南针、帐篷、 2020-12-10 …
英语翻译请翻译下面一段英文,为什么创业?为了生存.一个企业想要发展,必须学会生存.为生存创业,是我们 2020-12-14 …
下列说法中正确的是()A.电路两端只要有电压,就一定有电流B.某电路中只要有电流通过,电路中一定有电 2021-01-01 …