Ash*_*are 22 sql sql-server ssms
我在SQL Server中有一个包含大量表的数据库,并希望以csv格式导出所有表.从之前提出的一个非常类似的问题 - 从SQL Server 2012导出到.CSV通过Management Studio
右键单击management studio中的数据库,然后选择任务 - >导出数据...
按照向导,在目标部分中选择"平面文件目标".输入您的文件名并选择您的选项.
我想要的是一次导出所有表的能力.SQL Server导入和导出向导一次只允许一个表.如果你有一个非常大的数据库,这非常麻烦.我认为一个更简单的解决方案可能涉及编写查询,但不确定.
sre*_*ree 56
导出向导一次只允许一个.我使用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
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Export Data选择而不是单击Generate Scripts。选择所需的表,单击下一步,然后单击Advanced按钮。下的最后一个选项General是Types of data to script。选择Schema and data还是选择Data。
sree的答案很好。对于我的数据库,由于存在多个架构,因此我对此进行了更改:
$tablequery = "SELECT schemas.name as schemaName, tables.name as tableName from sys.tables inner join sys.schemas ON tables.schema_id = schemas.schema_id"
Run Code Online (Sandbox Code Playgroud)
然后
$queryData = "SELECT * FROM [$($Row[0])].[$($Row[1])]"
#Specify the output location of your dump file
$extractFile = "C:\mssql\export\$($Row[0])_$($Row[1]).csv"
Run Code Online (Sandbox Code Playgroud)