0

ADO.NETコマンドとパラメータに関するMSDNドキュメントには、次のように記載されています。

ReturnValue:このパラメーターは、ストアード・プロシージャー、組み込み関数、またはユーザー定義関数などの操作からの戻り値を表します。

これはSQLServerで実行できますか?または任意の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'が見つかりませんでした。

4

1 に答える 1

0

AFAIK、そのような「構文上の」組み込み関数を呼び出すことはできません。これらは実際のSQLオブジェクトではなく、どのオブジェクトリストにも表示されないためです(コンパイラによって構文的に実装されます)。

integer他の関数はそのように呼び出すことができますが、これは古風な使用法であり、プロシージャのように扱っているため、プロシージャは単一の戻り値しか持てないため、お勧めできません。したがって、関数が非整数を返す場合、文字化けして認識できないものになる可能性があります。

于 2012-08-26T16:32:30.713 に答える