我在SQL Server中有一个数据库,其中有很多表,并希望以csv格式导出所有表。
右键单击Management Studio中的数据库,然后选择“任务”->“导出数据…”。 遵循向导,然后在目标部分中选择“平面文件目标”。输入您的文件名,然后选择您的选项。
右键单击Management Studio中的数据库,然后选择“任务”->“导出数据…”。
遵循向导,然后在目标部分中选择“平面文件目标”。输入您的文件名,然后选择您的选项。
我想要的是能够一次导出所有表的功能。SQL Server导入和导出向导一次只允许一个表。如果您有一个非常大的数据库,这将非常麻烦。我认为更简单的解决方案可能涉及编写查询,但不确定。
导出向导一次只允许一个。我使用powershell脚本将所有表导出到csv中。如果可以帮助您,请尝试此操作。
$server = "SERVERNAME\INSTANCE" $database = "DATABASE_NAME" $tablequery = "SELECT schemas.name as schemaName, tables.name as tableName from sys.tables inner join sys.schemas ON tables.schema_id = schemas.schema_id" #Delcare Connection Variables $connectionTemplate = "Data Source={0};Integrated Security=SSPI;Initial Catalog={1};" $connectionString = [string]::Format($connectionTemplate, $server, $database) $connection = New-Object System.Data.SqlClient.SqlConnection $connection.ConnectionString = $connectionString $command = New-Object System.Data.SqlClient.SqlCommand $command.CommandText = $tablequery $command.Connection = $connection #Load up the Tables in a dataset $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $command $DataSet = New-Object System.Data.DataSet $SqlAdapter.Fill($DataSet) $connection.Close() # Loop through all tables and export a CSV of the Table Data foreach ($Row in $DataSet.Tables[0].Rows) { $queryData = "SELECT * FROM [$($Row[0])].[$($Row[1])]" #Specify the output location of your dump file $extractFile = "C:\mssql\export\$($Row[0])_$($Row[1]).csv" $command.CommandText = $queryData $command.Connection = $connection $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $command $DataSet = New-Object System.Data.DataSet $SqlAdapter.Fill($DataSet) $connection.Close() $DataSet.Tables[0] | Export-Csv $extractFile -NoTypeInformation }
谢谢