我需要将数据从 SQL Server2005 表中取出,然后放到另一个系统中。
我的供应商说:
“我们不建议您直接进入 SQL 并收集数据,因为这可能会导致数据损坏,或者您可以在导出时锁定表。”
真的吗?
我需要将数据从 SQL Server2005 表中取出,然后放到另一个系统中。
我的供应商说:
“我们不建议您直接进入 SQL 并收集数据,因为这可能会导致数据损坏,或者您可以在导出时锁定表。”
真的吗?
是的。您可以在导出时锁定表。如果要避免锁定,可以使用 WITH(NOLOCK) 提示(但请注意,您可能会读取“陈旧”或其他不一致的数据)。
数据损坏是什么意思?如果您只在没有锁的情况下读取数据,则不会损坏数据(但您可以读取不一致的数据)。
根据微软自己的说法,这个问题的答案如下:
“读取操作完全支持对 Microsoft Navision 的 ODBC 访问,尽管由于绕过了业务逻辑(例如不执行触发器),写入操作需要特别注意。”
资料来源:http: //www.navisionguider.dk/downloads/Nav_IntegrationGuide1.2.pdf中的第 15 页
任何有使用 ODBC 仅用于读取操作的经验的人?它是否以任何关键的方式干扰写操作?(写操作是不可能的,还是数据被破坏了)?还是只是性能问题?(写入速度较慢,而您正在导出/读取大量数据)?我想我可能会遇到脏读(读取过时的数据),但是其他人应该仍然可以进行写操作吗?