2012-05-04 35 views
0

如何从实时SQL Server数据库复制大量表格以及它们包含的数据?如何复制表格和数据以用于测试目的

我想为我的机器上的基本测试获取一些数据。

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

回答

1

您可以通过使用SQL Server导入和导出向导
Here is MSDN video

尝试导出数据你可以将其导出为平面文件

在Management Studio中,选择数据库,右键单击并选择任务 - >导出数据。在那里您将看到可导出到不同种格式的选项,包括CSV

您也可以从查询窗口运行查询并将结果保存为CSV。

+0

谢谢你的指针,但视频是导出到Excel,但至少在Excel 2003中,我们有,它仅限于65K记录 – SteveC

+0

让我去那......解决方案,我用用的是去导出数据并将Destination设置为本地SQL Express实例中的新数据库 – SteveC

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)  
+0

对不起,SQL导出非常新,所以不知道有什么可用的,不必介意有什么更好的选择...我的导出到Excel的实验不是很好成功的。感谢指针 – SteveC

相关问题