I have n processes which update rows in a table using the primary key (I am sure every process updates different rows). The table is defined with "lock datarows scheme", an therefore I would expect no deadlocks. However, I am getting deadlocks. Any ideas ?
If table is defined with data rows locking scheme, it doesnt mean that dead lock will never occure, you need to detect the exact cause of deadlocking, try following for this
(1) identify any long running transactions and divide it in shorter one
(2) enable "print dead lock information" parameter from sp_configure and check where dead lock occures
(3) check if any other process running at same time uses the same table then tune that sql
(4)use sp_object_stats to verify dead lock information