您的位置:首页 > 编程语言 > PHP开发

存储过程中OUTPUT类型参数的使用总结

2007-05-16 16:53 267 查看
作为演示,首先我们建立一个存储过程,当然这个存储过程会包含一个OUTPUT类型的参数:

CREATE PROCEDURE MyTest
@MyVar varchar(25) OUTPUT
AS
BEGIN
SELECT @MyVar = 'abc'
END
GO
这段代码很简单,重点在于OUTPUT类型的参数后面一定要有OUTPUT。

既然是输出的,当然要有个输出的地方,也就是为了运行这个存储过程,首先要先声明一个变量,调用的方法如下:

DECLARE @TestVar VARCHAR(25)

EXEC MyTest @TestVar OUTPUT

SELECT @TestVar
结果自然是abc,这里的关键就是传参的时候,一定要加OUTPUT,我老忘这个事情,呵呵。

上边是在SSMS中进行调用的,可是如果我们要是在ADO.NET中进行调用该怎么做呢,其实很简单的,当然额外要做的事情就是要加OUTPUT咯,具体参考以下代码:

public static string GetTestResult()
string ret = string.Empty;

using (SqlConnection sqlConnection = new SqlConnection(GetConnectionString()))
SqlCommand nonQueryCommand = new SqlCommand();
nonQueryCommand.Connection = sqlConnection;
nonQueryCommand.CommandText = "MyTest";
nonQueryCommand.CommandType = CommandType.StoredProcedure;

SqlParameter returnParameter = nonQueryCommand.Parameters.Add("@MyVar", SqlDbType.VarChar, 25);
returnParameter.Direction = ParameterDirection.Output;

nonQueryCommand.Connection.Open();
nonQueryCommand.ExecuteNonQuery();

ret = returnParameter.Value.ToString();
}

return ret;
}
关键的地方是要设置参数的Direction属性。

剩下的就是废话了,其实开始的时候是打算用SQL Server自带的自定义函数的,可是限制太多,比如在自定义函数中不可以使用Insert或者Update,比较恼火,呵呵。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐