sql >> データベース >  >> RDS >> Sqlserver

SQL Serverのストアドプロシージャにパラメータを追加することの違いは?

    ここにいくつかの説明があります:

    コマンドAddとAddWithValueの違い

    Dim cmd as new SqlCommand("SELECT * FROM MyTable WHERE MyDate>@TheDate",conn)
    cmd.Parameters.Add("@TheDate",SqlDbType.DateTime).Value="2/1/2007"
    

    vs

    cmd.Parameters.AddWithValue("@TheDate","2/1/2007")
    

    「Addは、パラメータに入るときに文字列から日付への変換を強制します。AddWithValueは、文字列をSQLServerに渡すだけでした。

    編集

    Output-Parameterを取得する例:

    C#

    cmd.Parameters.Add(new SqlParameter("@TheNewId", SqlDbType.Int, int.MaxValue));
    cmd.Parameters("@TheNewId").Direction = ParameterDirection.Output;
    cmd.ExecuteNonQuery();
    int theNewID = (int)cmd.Parameters("@TheNewId").Value;
    

    VB.Net

    cmd.Parameters.Add(New SqlParameter("@TheNewId", SqlDbType.Int, Int32.MaxValue))
    cmd.Parameters("@TheNewId").Direction = ParameterDirection.Output
    cmd.ExecuteNonQuery()
    Dim theNewID As Int32 = DirectCast(cmd.Parameters("@TheNewId").Value, Int32)
    


    1. OPENROWSETは、引数に変数を受け入れません(SQL Server)

    2. Oracleデータベースのリカバリ

    3. 列が多すぎるテーブルのデメリット

    4. (まだ)存在しないテーブルまたは列を参照するSQL関数を作成します