Обновить столбец таблицы значением столбца по умолчанию - PullRequest
3 голосов
/ 07 января 2010
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 голосов
/ 07 января 2010

Вы пытались использовать ключевое слово DEFAULT? Например:

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

Это поддерживается стандартом SQL, а синтаксические документы для UPDATE указывают, что Microsoft SQL Server поддерживает это использование ключевого слова DEFAULT.

2 голосов
/ 07 января 2010

Если ваш SQL-сервер - MS SQL, вы можете попробовать:

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

Другие SQL-серверы, вероятно, будут иметь аналогичный синтаксис.

1 голос
/ 07 января 2010

Если вы намерены всегда использовать значение по умолчанию для [tval] при каждом обновлении строки, просто включите это в свой оператор обновления:

dataCommand.CommandText = "UPDATE [MachineGroups] SET [MachineGroupName]=@MachineGroupName,[MachineGroupDesc]=@MachineGroupDesc, [tval] = default** WHERE [MachineGroupID]= @MachineGroupID"; 

Это всегда будет использовать ваш определенный по умолчанию всякий раз, когда вы вызываете обновление.

0 голосов
/ 07 января 2010

Использовать ALTER TABLE и ON UPDATE SET DEFAULT

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...