当前位置: 首页 > 面试题库 >

SQL Server Management Studio 2012-将数据库的所有表导出为csv

裴兴言
2023-03-14
问题内容

我在SQL Server中有一个数据库,其中有很多表,并希望以csv格式导出所有表。从先前提出的一个非常类似的问题开始-通过Management
Studio从SQL Server
2012导出到.CSV

右键单击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
}

谢谢



 类似资料:
  • 问题内容: 是否有一条SQL命令将列出数据库中的所有表,并且该命令与提供程序无关(可在MSSQLServer,Oracle,MySQL上运行)? 问题答案: 最接近的选项是查询表。 它是标准SQL的一部分,但并非所有供应商都支持它。据我所知,唯一支持它的RDBMS供应商是: 的MySQL PostgreSQL的 微软SQL服务器2000年/ 2005年/ 2008年 一些品牌的数据库,例如Orac

  • 问题内容: 我想保留所有MySQL数据库的备份。我有100多个MySQL数据库。我想同时导出所有它们,然后一次将所有它们再次导入到我的MySQL服务器中。我怎样才能做到这一点? 问题答案: 出口: 查找有关mysqldump的文档。您可能要使用注释中提到的一些选项: 进口:

  • 将中的每行复制到. Microsoft SQL Server Management Studio2012中是否有从表创建插入SQL的选项?或者还有其他选择吗?

  • 问题内容: 如何使用查询获取SQL Server数据库中所有表的列表。我的意图是将其动态显示在网页上。 问题答案: 尝试: 这应该给您您想要的。然后,您需要从网页中调用它,以所需格式显示。 您可能要看: 如何使用C#在组合框中从数据库获取所有表的名称 可能会帮助您完成您想做的事情。 另外-您可能想看一下SQL Server:我应该在sys表上使用information_schema表吗? 用于sy

  • 问题内容: 我有兴趣将值的子集从MySQL数据库导出到磁盘上的JSON格式的文件中。 我找到了一个讨论执行此操作的方法的链接:http : //www.thomasfrank.se/mysql_to_json.html …但是当我使用该页面中的方法时,它似乎可以工作,但是有两个问题: 1)它只返回大约15个结果,最后一个突然中断(不完整)。当我按以下方式运行时,我对此的标准查询返回大约4000个结

  • 问题内容: 我环顾四周,仍然找不到如何列出数据库中的所有表。MySQLi有可能吗? 谢谢。 问题答案: 有很多方法。 是执行此操作的最简单的SQL语句。您还可以查看是否需要更多详细信息或进行过滤等操作。