使用列默认值更新表列

时间:2010-01-07 20:14:34

标签: c# asp.net sql

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”因为可能会改变..

任何建议??

感谢

4 个答案:

答案 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

http://technet.microsoft.com/en-us/library/ms174123.aspx