2014-05-11 75 views
0

我有一个可以更新的SQL数据库。由于sql(将基于服务器)我只想更新值,因为我需要。因此,如果只有一列发生更改,则只更新一列。更新SQL行的最佳方式

我有一种机制,检测值是否已更改,目前我有一个凌乱的函数,构造SQL语法,然后将数据绑定到它。我想知道的是,是否有任何价值,我可以绑定到语法,所以SQL dosn't更新该列。举个例子。

@"update TABLE1 Set col1 = ?, col2 = ? Where ROWID = '%d'",ROWID]; 

所以如果col2没有改变是否有任何值我可以绑定到它,所以它不更新该列?

感谢

回答

0

基本上没有,有可以绑定,这将会使COL2不变没有“神奇”的价值。

绑定旧值(即使用与col2相同的值进行更新)将产生所需的效果,但需要一次更新单个行,并知道每行的旧值。

将SQL重建为不包括col2在大多数情况下最有可能是正确的。

+0

我会把它留作构建sql语法,大多数entires是低质量的图像文件,每次重写它们都会占用大量资源。 –

0

如果COLUMN1更改您可以更新变量COL1值获取所有列值在一些变量...说COL1,COL2。(在特定行)

同样,如果column2更改,您可以更新变量col2值。

和上面提到的一个UPDATE QUERY应该执行所需的更新。

0

我不明白你是否想改变一组特定的行,或者你可以选择一组随机的ROW ID。

,如果你可以随机选择一组行ID可以参考以下下面执行查询:

update TABLE1 Set col1 = ?, col2 = ? Where ROWID NOT IN (SELECT .................) 

,你不希望在SELECT子句extraxt的ROWID更新。 希望它可以帮助你。 Bye, Simone