我有一个名为PCNAME\SQLEXPRESS
的本地数据库(我正在使用SQL Server Express)。我需要从位于MAINDB\HYEAH
的主数据库中加载数据,因此我链接了mainDB,并且能够使用存储过程将主DB中的数据插入到本地DB中。
我的问题是我不知道执行以下操作的正确方法:
我一直在使用从mainDB导入的数据,该数据在表Credits
中,我一直在查询,插入或更新该表中的记录。
但是每隔10分钟,我必须再次将数据从mainDB重新加载到Credits
中,但是我无法停止使用该数据。从mainDB重新加载数据时,我需要找到一种方法来使用这些数据并对其进行操作。
我不是数据库或SQL事务方面的专家,所以我考虑了以下解决方案:
我第一次从mainDB加载数据时,将直接在表Credits
上进行处理。其他时候,我将数据加载到临时表中,并且当存储过程完成时,我将Credits
替换为临时表中的数据。但是我认为这是愚蠢的原因,如果我从Credits
删除所有数据以将其替换为临时表,我将无法继续使用这些数据,因此卡住了。
有没有办法正确地做到这一点?
谢谢!
答案 0 :(得分:1)
一种选择是使用同义词。
BEGIN TRY
DROP SYNONYM working_table
END TRY
BEGIN CATCH
END CATCH
CREATE SYNONYM working_table FOR import_table_a
您现在可以选择并更新working_table,它们将进入import_table_a。当您需要将数据重新加载到import_table_b中时,只需删除同义词并将其指向表的新版本即可。
但是请采纳其他暗示您可能正在解决错误问题的评论:)