J. *_*ini 7 sql-server etl bulkcopy t-sql bulk-insert
我有一个巨大的表,假设有 500,000 行。我想将其(架构和数据)从一台服务器复制到另一台服务器。这不是更新插入或任何类型的更新;这是一次性的直接复制和粘贴。对此的惯用方法是什么?
我试过了:
小智 16
SELECT INTO将表克隆到该数据库中。Ale*_*sko 12
我用的很多都是原生的SQL Server Import and Export Wizard。
在 SSMS 的对象资源管理器 -> 源 SQL Server -> 右键单击数据库 -> 任务 -> 导出数据
选择数据源:Microsoft OLE DB Provider for SQL Server。
服务器名称:源服务器。
选择目标:Microsoft OLE DB Provider for SQL Server。
服务器名称:目标服务器。
指定表复制或查询:从一个或多个表或视图复制数据。
请注意,这会将表复制为堆(其中有列和数据,但没有索引),您将需要在目标表上手动编写脚本并创建索引、约束等(如果它们不多,这并不难) 。
一种选择是使用https://docs.dbatools.io/ powershell 模块中的copy-dbadbtabledata。
copy-dbadbTableData -SqlInstance sourceserver -Database sourcedatabase -Table dbo.sometablename -Destination destinationserver -DestinationDatabase destinationdatabase -DestinationTable dbo.sometablename
Run Code Online (Sandbox Code Playgroud)
如果目标中尚不存在该表 (-AutoCreateTable),或者该表存在且其中包含数据 (-truncate),您还可以添加参数。
另一种选择是使用BCP。
bcp sourcedatabase.dbo.sometablename out D:\BCP\table.bcp -c -U<login_id> -Ssourceserver
bcp destinationdatabase.dbo.sometablename IN D:\BCP\table.bcp -c -T
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1295 次 |
| 最近记录: |