通过查询导出大型SQL数据库

通过查询导出大型SQL数据库,sql,sql-server,database,export-to-excel,export-to-csv,Sql,Sql Server,Database,Export To Excel,Export To Csv,我正在尝试导出Microsoft SQL Server Management Studio 2000中的数据库。我的数据库非常大,有1300多个独特的表 我知道“导出向导”和“复制/粘贴”选项,但我希望能够将所有1300个表(或至少一次导出几百个)导出到单个csv或xls文件中。复制和粘贴每个表或为每个表选择“另存为”将花费太长的时间,导出向导一次只允许几十个表。好吧,我不建议您这样做,但是如果您迫切需要以您描述的方式提供解决方案,请参阅: 首先,在数据库上运行此查询: SELECT '

我正在尝试导出Microsoft SQL Server Management Studio 2000中的数据库。我的数据库非常大,有1300多个独特的表


我知道“导出向导”和“复制/粘贴”选项,但我希望能够将所有1300个表(或至少一次导出几百个)导出到单个csv或xls文件中。复制和粘贴每个表或为每个表选择“另存为”将花费太长的时间,导出向导一次只允许几十个表。

好吧,我不建议您这样做,但是如果您迫切需要以您描述的方式提供解决方案,请参阅:

首先,在数据库上运行此查询:

    SELECT 'sqlcmd -S . -d '+DB_NAME()+' -E -s, -W -Q "
    SET NOCOUNT ON;
    SELECT * FROM '+table_schema+'.'+TABLE_name+'" > "C:\Temp\'+Table_Name+'.csv"' 
    FROM [INFORMATION_SCHEMA].[TABLES]
您可能需要根据自己的方便更改文件夹名称

其次,将返回的所有行复制到
Export.bat
Export.cmd
文件中

第三,运行Export.bat文件,在单独的CSV文件中获得所需的1300多个表

第四,打开cmd窗口,导航到文件所在的文件夹,并使用以下命令:

copy *.csv Export.csv

您将拥有一个包含所有表的Export.csv文件,以及每个表的标题

也许这将帮助您解决问题


包含1300个表的单个csv/xls文件是什么样子的?您真的必须从SSMS中执行吗?使用sqlcmd或其他脚本处理器编写导出脚本将允许您一次导出所有导出,并且所需的时间应该更少。@dfundako excel工作簿将由1300张表组成,每张表代表一个表。@JohnDoe我很乐意看到人们在其中滚动。另外,excel工作簿只能处理一百万行左右的数据,所以请记住这一点。如果我问为什么像excel这样的单个文件会有好处,我想我会代表这里的每个人说。最有可能的是,每个表的CSV文件将更容易解决这个问题。仅仅因为您必须访问单个Excel文件,并不意味着任务会变得更容易,因为您仍然拥有工作表。除此之外,如果1300张工作表会达到Excel的某种限制,我也不会感到惊讶。他们的观点是,在我看来,这样的想法是高度实验性的,我不会对SQL身份验证的产品进行这样的操作,请使用:SELECT'sqlcmd-S-d'+DB_NAME()++'-U[username]-P[password]-s,-W-Q“设置无计数;从“+table_schema+”中选择*从[INFORMATION_schema]中选择“+table_NAME+”>“[TABLES]”从[INFORMATION_schema].[TABLES]中选择“C:\Temp\'+table_NAME+.csv”。[table]此外,关于远程连接问题,您可能不想尝试以下操作:EXEC sp_配置“远程访问”,1重新配置