0

关于 ADO.NET 命令和参数的MSDN 文档指出:

ReturnValue:该参数表示存储过程、内置函数用户定义函数等操作的返回值。

这可以在 SQL Server 中完成吗?或者任何关系数据库管理系统?

我尝试将 CommandText 设置为函数的名称:

using (var conn = new SqlConnection(connectionString)) {
    conn.Open();
    var cmd = conn.CreateCommand();
    cmd.CommandText = "RAND";

    var parameter = new SqlParameter();
    parameter.Direction=ParameterDirection.ReturnValue;
    cmd.Parameters.Add(parameter);

    cmd.ExecuteNonQuery();

    Console.WriteLine(
        "Random number from SQL Server: {0}",
        parameter.Value
    );
}

并收到以下 SqlException:

找不到存储过程“RAND”。

4

1 回答 1

0

AFAIK,您不能像那样调用“语法”内置函数,因为它们不是真正的 sql 对象,并且不会出现在任何对象列表中(它们是由编译器在语法上实现的)。

其他函数也可以这样调用,但不建议这样做,因为这是一种过时的用法,而且因为它将它们视为过程,并且过程只能有一个integer返回值。因此,如果您的函数返回一个非整数,它很可能会变成乱码,无法识别。

于 2012-08-26T16:32:30.713 回答