System.Data.SqlClient.SqlConnection dataConnection = new SqlConnection();
dataConnection.ConnectionString = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString;
System.Data.SqlClient.SqlCommand dataCommand = new SqlCommand();
dataCommand.Connection = dataConnection;
long MachineGroupID = Convert.ToInt64(Request.QueryString["node"]);
dataCommand.CommandText = "UPDATE [MachineGroups] SET [MachineGroupName]=@MachineGroupName,[MachineGroupDesc]=@MachineGroupDesc WHERE [MachineGroupID]= @MachineGroupID";
//add our parameters to our command object
dataCommand.Parameters.AddWithValue("@MachineGroupName", MachineGroupName);
dataCommand.Parameters.AddWithValue("@MachineGroupDesc", MachineGroupDesc);
dataCommand.Parameters.AddWithValue("@MachineGroupID", MachineGroupID);
dataConnection.Open();
dataCommand.ExecuteNonQuery();
dataConnection.Close();
这里的MachineGroups表有一个“tval”列,它首先插入了用户值,然后在更新时应该在创建时将SQl值设置为默认值......
例如
[tval] [int] NOT NULL DEFAULT ((2147483647))
这是列的创建方式,现在我想将值2147483647置于更新状态。
我也无法将值修改为“2147483647”因为可能会改变..
任何建议??
感谢
答案 0 :(得分:5)
您是否尝试过使用DEFAULT
关键字?例如:
UPDATE [MachineGroups] SET [tval] = DEFAULT
WHERE [MachineGroupID] = @MachineGroupID
SQL标准支持此功能,UPDATE
的{{3}}表示Microsoft SQL Server支持使用DEFAULT
关键字。
答案 1 :(得分:2)
如果您的SQL服务器是MS SQL,那么您可以尝试:
UPDATE [MachineGroups]
SET [MachineGroupName]=@MachineGroupName
,[MachineGroupDesc]=@MachineGroupDesc
,[tval]=DEFAULT
WHERE [MachineGroupID]= @MachineGroupID
其他SQL服务器可能具有类似的语法。
答案 2 :(得分:1)
如果您打算在更新行时始终使用[tval]的默认值,请将其包含在更新语句中:
dataCommand.CommandText = "UPDATE [MachineGroups] SET [MachineGroupName]=@MachineGroupName,[MachineGroupDesc]=@MachineGroupDesc, [tval] = default** WHERE [MachineGroupID]= @MachineGroupID";
每当您致电更新时,它都将始终使用您定义的默认值。
答案 3 :(得分:0)
使用ALTER TABLE和ON UPDATE SET DEFAULT