SQL必须声明标量变量
这是我的代码CREATEPROCCUNCHUGUOCHENG@NUMBERVARCHAR(10)@rtnINToutputASBEGINDECLARE@tmpNUMBER...
这是我的代码
CREATE PROC CUNCHUGUOCHENG
@NUMBER VARCHAR(10)
@rtn INT output
AS
BEGIN
DECLARE @tmpNUMBER VARCHAR(10)
@NUMBER VARCHAR(10)
@rtn int
if exists (select*from guanliyuanxinxi where NUMBER=@NUMBER)
begin
select @tmpNUMBER=NUMBER FROM guanliyuanxinxi WHERE NUMBER=@NUMBER
IF (@tmpNUMBER=NUMBER)
BEGIN
SET @rtn=0
END
ELSE
BEGIN
UPDATE guanliyuanxinxi SET NUMBER=@NUMBER WHERE NUMBER=@NUMBER
SET @rtn=2
END
end
else
begin
insert into guanliyuanxinxi values(@NUMBER)
SET @rtn=1
end
END
GO
错误提示有
消息 102,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 3 行
'@rtn' 附近有语法错误。
消息 102,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 7 行
'@NUMBER' 附近有语法错误。
消息 137,级别 15,状态 2,过程 CUNCHUGUOCHENG,第 9 行
必须声明标量变量 "@NUMBER"。
消息 137,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 11 行
必须声明标量变量 "@tmpNUMBER"。
消息 137,级别 15,状态 2,过程 CUNCHUGUOCHENG,第 12 行
必须声明标量变量 "@tmpNUMBER"。
消息 137,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 14 行
必须声明标量变量 "@rtn"。
消息 137,级别 15,状态 2,过程 CUNCHUGUOCHENG,第 19 行
必须声明标量变量 "@NUMBER"。
消息 137,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 20 行
必须声明标量变量 "@rtn"。
消息 137,级别 15,状态 2,过程 CUNCHUGUOCHENG,第 25 行
必须声明标量变量 "@NUMBER"。
消息 137,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 26 行
必须声明标量变量 "@rtn"。
要疯了!!!求指导!!! 展开
CREATE PROC CUNCHUGUOCHENG
@NUMBER VARCHAR(10)
@rtn INT output
AS
BEGIN
DECLARE @tmpNUMBER VARCHAR(10)
@NUMBER VARCHAR(10)
@rtn int
if exists (select*from guanliyuanxinxi where NUMBER=@NUMBER)
begin
select @tmpNUMBER=NUMBER FROM guanliyuanxinxi WHERE NUMBER=@NUMBER
IF (@tmpNUMBER=NUMBER)
BEGIN
SET @rtn=0
END
ELSE
BEGIN
UPDATE guanliyuanxinxi SET NUMBER=@NUMBER WHERE NUMBER=@NUMBER
SET @rtn=2
END
end
else
begin
insert into guanliyuanxinxi values(@NUMBER)
SET @rtn=1
end
END
GO
错误提示有
消息 102,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 3 行
'@rtn' 附近有语法错误。
消息 102,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 7 行
'@NUMBER' 附近有语法错误。
消息 137,级别 15,状态 2,过程 CUNCHUGUOCHENG,第 9 行
必须声明标量变量 "@NUMBER"。
消息 137,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 11 行
必须声明标量变量 "@tmpNUMBER"。
消息 137,级别 15,状态 2,过程 CUNCHUGUOCHENG,第 12 行
必须声明标量变量 "@tmpNUMBER"。
消息 137,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 14 行
必须声明标量变量 "@rtn"。
消息 137,级别 15,状态 2,过程 CUNCHUGUOCHENG,第 19 行
必须声明标量变量 "@NUMBER"。
消息 137,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 20 行
必须声明标量变量 "@rtn"。
消息 137,级别 15,状态 2,过程 CUNCHUGUOCHENG,第 25 行
必须声明标量变量 "@NUMBER"。
消息 137,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 26 行
必须声明标量变量 "@rtn"。
要疯了!!!求指导!!! 展开
2个回答
展开全部
你的代码太乱啦 !我帮你简单改了下
有 @NUMBER 就更新 没有就新增
@rtn 为1:表示新增 2:为更新
CREATE PROC CUNCHUGUOCHENG
@NUMBER VARCHAR(10),
@rtn INT output
AS
BEGIN
if exists (select*from guanliyuanxinxi where NUMBER=@NUMBER)
begin
UPDATE guanliyuanxinxi SET NUMBER=@NUMBER WHERE NUMBER=@NUMBER
SET @rtn=2
end
else
begin
insert into guanliyuanxinxi values(@NUMBER)
SET @rtn=1
end
END
GO
追问
您好,我按着您的代码粘贴以后得到这个结果:
消息 134,级别 15,状态 1,过程 CUNCHUGUOCHENG,第 9 行
变量名 '@NUMBER' 已声明。变量名在查询批次或存储过程内部必须唯一。
您能再帮我修改一下吗?
追答
我 这儿就可以啦
CREATE PROC Cunchuguocheng @NUMBER VARCHAR(10),
@rtn INT output
AS
BEGIN
IF EXISTS (SELECT*
FROM guanliyuanxinxi
WHERE NUMBER = @NUMBER)
BEGIN
UPDATE guanliyuanxinxi
SET NUMBER = @NUMBER
WHERE NUMBER = @NUMBER
SET @rtn=2
END
ELSE
BEGIN
INSERT INTO guanliyuanxinxi(NUMBER)
VALUES (@NUMBER)
SET @rtn=1
END
END
GO
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询