OUTPUT参数期间通过错误存储过程

时间:2014-03-26 14:54:05

标签: sql sql-server stored-procedures

CREATE PROCEDURE GetActiveServerURL
(
@ActiveURL VARCHAR(100) OUTPUT
)
AS
BEGIN
SELECT @ActiveURL = RedirectURL FROM HealthCheck WHERE IsPrimary=1 AND Status=1
END

错误讯息: 过程或函数'GetActiveServerURL'需要参数'@ActiveURL',这是未提供的。


由于我已将ActiveURL声明为输出参数stil,因此它需要作为输入

3 个答案:

答案 0 :(得分:1)

您必须在通话中提及该参数也会输出。

DECLARE @ActiveURL VARCHAR(100)
EXEC GetActiveServerURL @ActiveURL OUTPUT

此处如何从SP

执行C#
string activeURL;

using(var conn = new SqlConnection(connectionString))
using(var command = new SqlCommand())
{
   command.Connection = conn;
   command.CommandText = "GetActiveServerURL";
   command.CommandType = CommandType.StoredProcedure;

   SqlParameter param = new SqlParameter("@ActiveURL", SqlDbType.VarChar, 100);
   param.Direction = ParameterDirection.Output,
   command.Parameters.Add(param);
   conn.Open();
   command.ExecuteNonQuery();

   activeURL = param.Value;
}

答案 1 :(得分:0)

您需要使用参数调用该过程并包含OUTPUT指令。

SET @ActiveURL = 'http://'

EXEC GetActiveServerURL @ActiveURL OUTPUT

答案 2 :(得分:0)

CREATE PROCEDURE GetActiveServerURL
(
 DECLARE @ActiveURL VARCHAR(100) OUTPUT
)
AS
BEGIN
SELECT @ActiveURL = RedirectURL FROM HealthCheck WHERE IsPrimary=1 AND Status=1
END  

EXEC GetActiveURL @ActiveURL OUTPUT



      Error : Incorrect syntax near the keyword 'DECLARE'.

消息102,级别15,状态1,过程GetActiveServerURL,第3行 'OUTPUT'附近的语法不正确。 消息137,级别15,状态1,过程GetActiveServerURL,第7行 必须声明标量变量“@ActiveURL”