如何从实时 SQL Server 数据库中复制多个表以及它们包含的数据?
我想获取一些数据以在我的机器上进行基本测试。
我本来打算对数据库做一个简单的备份,直到我注意到它的大小超过了 100GB。然而,我所追求的桌子只是一些较小的桌子。然后我尝试导出到 Excel,但达到了 65K 的限制(我们没有 Excel 2007)
如何从实时 SQL Server 数据库中复制多个表以及它们包含的数据?
我想获取一些数据以在我的机器上进行基本测试。
我本来打算对数据库做一个简单的备份,直到我注意到它的大小超过了 100GB。然而,我所追求的桌子只是一些较小的桌子。然后我尝试导出到 Excel,但达到了 65K 的限制(我们没有 Excel 2007)
您可以尝试使用 SQL Server 导入和导出向导导出数据
这是 MSDN 视频
您可以将其导出为平面文件
在 Management Studio 中,选择数据库,右键单击并选择Tasks->Export Data。在那里,您将看到导出为不同类型格式的选项,包括CSV。
您还可以从“查询”窗口运行查询并将结果保存到 CSV。
您不能使用从实时服务器到测试机器的导出数据向导吗?还是使用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)