0

稼働中の SQL Server データベースから多数のテーブルとテーブルに含まれるデータをコピーするにはどうすればよいですか?

自分のマシンで基本的なテストを行うためのデータを取得したいと考えています。

当初、データベースのサイズが 100GB を超えていることに気付くまで、データベースの簡単なバックアップを行うつもりでした。ただし、私が求めているテーブルは、小さなテーブルのほんの一部です。その後、Excel へのエクスポートを試みましたが、65K の制限に達しました(Excel 2007 はありません)。

4

2 に答える 2

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 に答える
1

SQL Server インポートおよびエクスポート ウィザードを使用してデータのエクスポートを試すことができます
MSDN ビデオはこちら

フラットファイルとしてエクスポートできます

Management Studio でデータベースを選択し、右クリックして [タスク] - > [データのエクスポート] を選択します。そこには、 CSVを含むさまざまな種類の形式にエクスポートするオプションが表示されます。

クエリ ウィンドウからクエリを実行し、結果を CSV に保存することもできます。

于 2012-05-04T06:52:51.250 に答える