使用列默认值更新表格列

3
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个回答

5

您是否尝试过使用 DEFAULT 关键字?例如:

UPDATE [MachineGroups] SET [tval] = DEFAULT 
WHERE [MachineGroupID] = @MachineGroupID

这是符合SQL标准的,UPDATE语法文档表明Microsoft SQL Server支持使用DEFAULT关键字。


2

如果您的SQL服务器是MS SQL,则可以尝试以下操作:

UPDATE [MachineGroups] 
SET [MachineGroupName]=@MachineGroupName
,[MachineGroupDesc]=@MachineGroupDesc 
,[tval]=DEFAULT
WHERE [MachineGroupID]= @MachineGroupID

其他SQL服务器可能具有类似的语法。


1
如果您的意图是每当更新一行时始终使用[tval]的默认值,只需在更新语句中包含该值即可:
dataCommand.CommandText = "UPDATE [MachineGroups] SET [MachineGroupName]=@MachineGroupName,[MachineGroupDesc]=@MachineGroupDesc, [tval] = default** WHERE [MachineGroupID]= @MachineGroupID"; 

每当您调用更新时,它将始终使用您定义的默认值。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接