如何将(可能很大的)表的内容从本地数据库传输到远程托管的表,如下所示
本地我在远程主机上有SQL Server Express:SQL Server Standard。
答案 0 :(得分:0)
根据您的托管服务提供商的“远程”( - >带宽),从两个数据库运行涉及表的查询通常不是一个好主意,尽管从技术上来说这可以使用MSSQL-studio。
我的建议:将整个批次从本地表(例如tbl
)上传到名为tmptbl
的服务器表中,然后使用以下命令在远程系统上进行插入
INSERT INTO tbl (id,col1,col2,col3, ...)
SELECT id,col1,col2,col3, ... FROM tmptbl WHERE id NOT IN (
SELECT id FROM tbl
)
之后,您可以再次DROP
导入表tmptbl
...
此示例假定id
唯一标识您的记录。我仍然明确地为所有列命名,以防每个表中还有auto_increment
- ed PRIMARY KEY
。
修改强>
或者,(理论上)可以通过使用sp_addlinkedserver
链接远程服务器的表来直接在两个服务器的表之间应用上述语句,请参阅MSSQL manual。我过去也尝试过,但发现由于服务器之间的带宽有限,性能非常不好,特别是在涉及更大的表时。