views:

24

answers:

2

I need to get data out of SQL Server2005 tables, and into another system.

My vendors says:

"We don´t recommend that you go directly in the SQL and collect data, because it can result in corruption of data or you can lock tables while exporting."

Is that true?

+1  A: 

Yes. You could lock tables while exporting. You can use the WITH(NOLOCK) hint if you want to avoid locks (but be aware you could read 'stale' or otherwise inconsistent data).

What do they mean by corruption of data? You can't corrupt data if you only read it without locks (but you could read inconsistent data).

Mitch Wheat
When you mention locking tables while exporting, is that also true for ODBC read operations to the tables? If I only make a read only read when I export data, there should not be any risk in destroying things for other users who write to the tables? I guess I could experience dirty reads (read outdated data), but write operations should still be possible for others? (however their write performance could decrease a little or?) Could be great if you could elaborate on your previous answer.
MOLAP
A: 

According to Microsoft themselves the answer to the question is the following:

"ODBC access to Microsoft Navision is fully supported for Read operations although write operations need careful attention as the business logic is bypassed (for example triggers are not executed)."

Source: page 15 in http://www.navisionguider.dk/downloads/Nav_IntegrationGuide1.2.pdf

Anyone with experiences in using ODBC for read operations only? Does it disturb the write operations in any critical way? (is write operations made impossible, or is data destroyed)? Or is it just a performance issue? (slower writes, while you're exporting/reading tons of data)? I guess I could experience dirty reads (read outdated data), but write operations should still be possible for others?

MOLAP