如何在SQL查询中向SQL Server列添加加一(+1)

时间:2013-10-14 22:08:13

标签: sql sql-server tsql

简单的问题是,如何将MS Query中的字段值递增1?我正在尝试使用参数化方法将1(+1)添加到SQL Server数据库中的int列。类似于对变量的i ++操作。我使用以下方法:

public static int UpdateFieldCount(int parameterId)
{
    // variable to hold the number of rows updated or the success of the query
    int updatesuccess = 0;

    // build your connection string
    string connectionstring = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    SqlConnection conn = new SqlConnection(connectionstring);

    // build your SQL Query statement
    string SQLString = "UPDATE TableName SET TableField + 1 WHERE SomeFilterField = @ParameterID";        
    SqlCommand sqlcmd = new SqlCommand(SQLString, conn);
    sqlcmd.Parameters.AddWithValue("@ParameterID", parameterID);

    conn.Open();
    updatesuccess = sqlcmd.ExecuteNonQuery();

    conn.Close(); 

    return updatesuccess;
}

此方法在我的sql查询中抛出与加号(+)相关的​​以下错误:

  

'+'附近的语法不正确。

     

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

     

异常详细信息:System.Data.SqlClient.SqlException:'+'附近的语法不正确。

     

来源错误:

     

315行:
  第316行:conn.Open();
  第317行:updatesuccess = sqlcmd.ExecuteNonQuery();
  318行:conn.Close();
  第319行:

     

源文件:c:\ testdevlocation \ appname \ App_Code \ ClassFileName.cs行:317

对此有何建议?

3 个答案:

答案 0 :(得分:63)

您需要一个值和一个字段来分配它。值为TableField + 1,因此赋值为:

SET TableField = TableField + 1

答案 1 :(得分:52)

"UPDATE TableName SET TableField = TableField + 1 WHERE SomeFilterField = @ParameterID"

答案 2 :(得分:-2)

选择col1,col2, 当col1 ='1'然后col1 + 1时的情况 否则'0'以newvalue结尾 来自table_name