0

如何从实时 SQL Server 数据库中复制多个表以及它们包含的数据?

我想获取一些数据以在我的机器上进行基本测试。

我本来打算对数据库做一个简单的备份,直到我注意到它的大小超过了 100GB。然而,我所追求的桌子只是一些较小的桌子。然后我尝试导出到 Excel,但达到了 65K 的限制(我们没有 Excel 2007)

4

2 回答 2

1

您可以尝试使用 SQL Server 导入和导出向导导出数据
这是 MSDN 视频

您可以将其导出为平面文件

在 Management Studio 中,选择数据库,右键单击并选择Tasks->Export Data。在那里,您将看到导出为不同类型格式的选项,包括CSV

您还可以从“查询”窗口运行查询并将结果保存到 CSV。

于 2012-05-04T06:52:51.250 回答
1

您不能使用从实时服务器到测试机器的导出数据向导吗?还是使用bcp?甚至使用简单的 PowerShell 脚本?

$Server = "MyServer"
$ServerInstance = "$Server\MyInstance"
$database = "MyDatabase"
$BackupFile = "c:\MyBackupFile.sql"

$tables = @('TableBlah','TableBluh','TableBloh')

$server = New-Object (
  'Microsoft.SqlServer.Management.Smo.Server') $ServerInstance
$scripter = New-Object ('Microsoft.SqlServer.Management.Smo.Scripter') $server

$scripter.Options.SchemaQualify = $false
$scripter.Options.ScriptSchema = $false
$scripter.Options.ScriptData = $true
$scripter.Options.NoCommandTerminator = $true
$scripter.Options.ToFileOnly = $true
$scripter.Options.FileName = $BackupFile
$ServerUrn=$server.Urn 

$UrnsToScript = New-Object Microsoft.SqlServer.Management.Smo.UrnCollection

foreach ($t in $tables)
{ 
  # Could use bcp here for dumping big tables (like archives)
  # $ret = (bcp.exe "$database..$t" out `"$ConfigBackupDir\$t.bcp`" 
  #   -S $ServerInstance -U sa -P $SAPWD -n) 

  $Urn = "$ServerUrn/Database[@Name='" + 
    $database + "']/Table[@Name='" + $t + "' and @Schema='dbo']"
  $UrnsToScript.Add($Urn)
}

$scripter.EnumScript($UrnsToScript)     
于 2012-05-04T06:58:36.087 回答