SQL Server 2008中 - 执行批处理作业和批量插入在T-SQL

SQL Server 2008中 - 执行批处理作业和批量插入在T-SQL

问题描述:

我面临着一个有趣的问题,我甚至不知道这是否是可能的:SQL Server 2008中 - 执行批处理作业和批量插入在T-SQL

我需要在SQL Server 2008中创建一个存储过程在执行时执行以下操作:

  1. 执行批处理文件 - 位于SQL Server上(即C:\ Mybatchfile.bat) - 这个批处理文件将在SQL Server上输出一个文本文件到一个目录(即C:\ Output \ BatchFileOutput1.txt)。

  2. Bulk将文本文件的内容插入到我的数据库中的表中。

  3. 从服务器删除文本文件。

在我真的开始挖掘如何实现这一目标之前,这甚至有可能吗?

在此先感谢

您应该能够把所有这一切都在一个过程:

1)执行批处理文件中使用:xp_cmdshell (Transact-SQL)。但是,许多人认为这是一种安全风险,并且可能不会在数据库中启用对其的访问。您可以使用CLR来执行批处理文件,这将更安全。

2)您可以使用bcp Utility将行复制到表中。 3)您将使用#1的方法删除文件。从xp_cmdshell发出删除命令,这是一个安全风险。或者在你传递文件名的地方创建一个CLR来删除文件。我不会让路径通过,硬代码,所以只有在你的“特殊”目录中的文件可以删除,而不是C:\等。

或者你可以在SSIS pacakge中做到这一点,然后有一个工作来执行包,而不是在存储过程中执行。或者proc可以让代码执行SSIS封装。