>>>Try reading again.
>>>"To generate INSERT, UPDATE, or DELETE statements, the SqlCommandBuilder uses the SelectCommand property to retrieve a required set of metadata automatically. If you change the SelectCommand after the metadata has been retrieved, such as after the first update, you should call the RefreshSchema method to update the metadata."
>>
>>I did read this line. However, it doesn't explain why will it use all columns to generate WHERE clause. What exactly does required metadata mean? Why it can not see that PK column I retrieve is a PK column?
>
>Your original select statement says "Select
every column. Therefore, when it builds the update sql it's going to update
every column because you told it to.
What about the WHERE clause. Why does it construct it the way it does?
In any way, my question was - is there any way to somehow set columns to be updated? The documentation doesn't tell so, so I assume there is no way to fix the command except for manual way which I am doing now.
If it's not broken, fix it until it is.
My Blog