Sql server 如何使用SQL Server 2008脚本执行文件夹

Sql server 如何使用SQL Server 2008脚本执行文件夹,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个带有.sql文件的文件夹;每个查询1个文件。我想执行所有查询/sql文件并将它们保存为csv 是否有一种方法可以在不使用windows cli(在我的环境中已禁用)的情况下自动执行此操作。我有SQL Server Management Studio。创建一个VB.NET控制台应用程序 从相关文件夹生成以.SQL结尾的文件列表 将每个文件的内容加载到各个SQL命令中 对每个对象执行SQL命令,将结果存储在数据集中 对于每个数据集中的每个表,创建一个新的.csv文件 对于每个.csv文件,您

我有一个带有.sql文件的文件夹;每个查询1个文件。我想执行所有查询/sql文件并将它们保存为csv


是否有一种方法可以在不使用windows cli(在我的环境中已禁用)的情况下自动执行此操作。我有SQL Server Management Studio。

创建一个VB.NET控制台应用程序

从相关文件夹生成以.SQL结尾的文件列表

将每个文件的内容加载到各个SQL命令中

对每个对象执行SQL命令,将结果存储在数据集中

对于每个数据集中的每个表,创建一个新的.csv文件


对于每个.csv文件,您需要迭代数据表中的每个单元格,并对.csv文件使用适当的转义。

创建一个VB.NET控制台应用程序

从相关文件夹生成以.SQL结尾的文件列表

将每个文件的内容加载到各个SQL命令中

对每个对象执行SQL命令,将结果存储在数据集中

对于每个数据集中的每个表,创建一个新的.csv文件


对于每个.csv文件,您需要迭代数据表中的每个单元格,并对.csv文件使用适当的转义。

如果您安装了Business Intelligence Development Studio(BIDS),我将使用SSI完成此任务

首先创建一个指向包含SQL文件的文件夹的“Foreach循环容器”,然后使用变量检索每个文件名

接下来,创建平面文件连接,并将“connection String”属性设置为包含文件位置的变量

接下来,使用“执行SQL任务”组件将“SQLSourceType”设置为“文件连接”,将“FileConnection”设置为在上一步中创建的

最后,根据数据的返回方式,您有两个选项,如果结果集很小,只有一行或一列,那么您可以将结果保存到变量中,并使用“数据流”任务创建“派生列”组件,并将该变量的内容导出到CSV文件中。或者,如果数据集较大,您可以将结果转储到临时表中,然后使用“OLE DB源”和“OLE DB目标”,您可以将完整的结果集直接推送到CSV中


希望这不是一个太复杂的解决方案,这种方法的优点是可以从远程计算机或服务器本身运行,此外,您还可以使用SQL代理作业自动化其执行。

如果您安装了Business Intelligence Development Studio(BIDS),我将使用SSIS完成此任务

首先创建一个指向包含SQL文件的文件夹的“Foreach循环容器”,然后使用变量检索每个文件名

接下来,创建平面文件连接,并将“connection String”属性设置为包含文件位置的变量

接下来,使用“执行SQL任务”组件将“SQLSourceType”设置为“文件连接”,将“FileConnection”设置为在上一步中创建的

最后,根据数据的返回方式,您有两个选项,如果结果集很小,只有一行或一列,那么您可以将结果保存到变量中,并使用“数据流”任务创建“派生列”组件,并将该变量的内容导出到CSV文件中。或者,如果数据集较大,您可以将结果转储到临时表中,然后使用“OLE DB源”和“OLE DB目标”,您可以将完整的结果集直接推送到CSV中


希望这不是一个太复杂的解决方案,这种方法的优点是可以从远程机器或服务器本身运行,此外,您还可以使用SQL代理作业自动执行该任务。

对于脚本文件夹中的每个文件,将“for”与sqlcmd或bcp命令结合使用。

对于脚本文件夹中的每个文件,将“for”与sqlcmd或bcp命令结合使用。

我认为没有一个非复杂的解决方案。回答得好谢谢你们两位的回答。我发现我们有一个非常旧的业务对象副本,解决了我的问题:我可以一次运行所有查询并将它们保存为多页Excel文件。在这种情况下,甚至比单独的csv更好。我不认为有一个非复杂的解决方案。回答得好谢谢你们两位的回答。我发现我们有一个非常旧的业务对象副本,解决了我的问题:我可以一次运行所有查询并将它们保存为多页Excel文件。在这种情况下,甚至比单独的csv更好。