SQL Server2008存储过程必须声明标量变量
/*******编写存储过程,实现按供应商号查询该供应商的供应信息**************/CREATEPROCEDURESUPPLIER@SNOCHAR(20),@...
/* ****** 编写存储过程,实现按供应商号查询该供应商的供应信息************* */
CREATE PROCEDURE SUPPLIER @SNO CHAR(20),@SNAME CHAR(20)OUTPUT,
@STATUS CHAR(20)OUTPUT,@CITY CHAR(20)OUTPUT
AS
SELECT SNAME,STATUS,CITY
FROM S
WHERE SNO=@SNO
GO
DECLARE @NAME CHAR(20),@STATU CHAR(20),@CIT CHAR(20)
EXECUTE SUPPLIER 'S1',@NAME,@STATU,@CIT
SELECT 'The result'=@NAME,@STATU,@CIT
GO
最后总是显示
消息 137,级别 15,状态 2,第 1 行
必须声明标量变量 "@NAME"。
消息 137,级别 15,状态 2,第 2 行
必须声明标量变量 "@NAME"。
求大神解释 展开
CREATE PROCEDURE SUPPLIER @SNO CHAR(20),@SNAME CHAR(20)OUTPUT,
@STATUS CHAR(20)OUTPUT,@CITY CHAR(20)OUTPUT
AS
SELECT SNAME,STATUS,CITY
FROM S
WHERE SNO=@SNO
GO
DECLARE @NAME CHAR(20),@STATU CHAR(20),@CIT CHAR(20)
EXECUTE SUPPLIER 'S1',@NAME,@STATU,@CIT
SELECT 'The result'=@NAME,@STATU,@CIT
GO
最后总是显示
消息 137,级别 15,状态 2,第 1 行
必须声明标量变量 "@NAME"。
消息 137,级别 15,状态 2,第 2 行
必须声明标量变量 "@NAME"。
求大神解释 展开
3个回答
展开全部
CREATE PROCEDURE SUPPLIER @SNO CHAR(20),@SNAME CHAR(20)OUTPUT,
@STATUS CHAR(20)OUTPUT,@CITY CHAR(20)OUTPUT
AS
SELECT SNAME,STATUS,CITY
FROM S
WHERE SNO=@SNO
GO
DECLARE @NAME CHAR(20),@STATU CHAR(20),@CIT CHAR(20)
EXECUTE SUPPLIER 'S1',@NAME OUTPUT,@STATU OUTPUT,@CIT OUTPUT
SELECT 'The result'=@NAME,@STATU,@CIT
GO
@STATUS CHAR(20)OUTPUT,@CITY CHAR(20)OUTPUT
AS
SELECT SNAME,STATUS,CITY
FROM S
WHERE SNO=@SNO
GO
DECLARE @NAME CHAR(20),@STATU CHAR(20),@CIT CHAR(20)
EXECUTE SUPPLIER 'S1',@NAME OUTPUT,@STATU OUTPUT,@CIT OUTPUT
SELECT 'The result'=@NAME,@STATU,@CIT
GO
追问
还是一样报错,为什么
追答
错误信息是什么?
CREATE PROCEDURE SUPPLIER @SNO CHAR(20),@SNAME CHAR(20)OUTPUT,
@STATUS CHAR(20)OUTPUT,@CITY CHAR(20)OUTPUT
AS
SELECT @SNAME=SNAME,@STATUS=STATUS,@CITY=CITY
FROM S
WHERE SNO=@SNO
GO
DECLARE @NAME CHAR(20),@STATU CHAR(20),@CIT CHAR(20)
EXECUTE SUPPLIER 'S1',@NAME OUTPUT,@STATU OUTPUT,@CIT OUTPUT
SELECT 'The result'=@NAME,@STATU,@CIT
GO
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
存储过程要改成
CREATE PROCEDURE SUPPLIER @SNO CHAR(20),@SNAME CHAR(20)OUTPUT,
@STATUS CHAR(20)OUTPUT,@CITY CHAR(20)OUTPUT
AS
SELECT top 1 @SNAME =SNAME,@STATUS=STATUS,@CITYCITY
FROM S
WHERE SNO=@SNO
GO
CREATE PROCEDURE SUPPLIER @SNO CHAR(20),@SNAME CHAR(20)OUTPUT,
@STATUS CHAR(20)OUTPUT,@CITY CHAR(20)OUTPUT
AS
SELECT top 1 @SNAME =SNAME,@STATUS=STATUS,@CITYCITY
FROM S
WHERE SNO=@SNO
GO
更多追问追答
追问
还是不对,仍然是
消息 137,级别 15,状态 2,第 1 行
必须声明标量变量 "@NAME"。
消息 137,级别 15,状态 2,第 2 行
必须声明标量变量 "@NAME"。
还是不对,仍然是
消息 137,级别 15,状态 2,第 1 行
必须声明标量变量 "@NAME"。
消息 137,级别 15,状态 2,第 2 行
必须声明标量变量 "@NAME"。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
非大神:就是你需要先定义@NAME这个变量
追问
怎么定义,新手求解释
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询