MSDN documentation on ADO.NET commands and parameters州:
ReturnValue:该参数表示来自诸如存储过程,内置函数或用户定义函数等操作的返回值。
可以在SQL Server中完成吗?还是任何RDBMS?
我尝试将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'。
答案 0 :(得分:0)
AFAIK,你不能像这样调用“语法”内置函数,因为它们不是真正的sql对象,并且不会出现在任何对象列表中(它们是由编译器在语法上实现的)。
可以像这样调用其他函数,但不建议这两个函数,因为这是一个古老的用法,并且因为它像处理程序和过程一样处理它们只能有一个integer
返回值。因此,如果你的函数返回一个非整数,它可能会变成一些无法识别的东西。