从SQL Server 2005存储过程到FTP的最佳做法是什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从SQL Server 2005存储过程到FTP的最佳做法是什么?相关的知识,希望对你有一定的参考价值。

从SQL Server存储过程执行FTP命令的最佳方法是什么?我们目前使用这样的东西:

EXEC master..xp_cmdshell 'ftp -n -s:d:ftpftpscript.xmt 172.1.1.1'

问题是即使FTP以错误结束,命令似乎也会成功。此外,使用xp_cmdshell需要特殊权限,并可能为安全问题留出空间。

答案

如果您正在运行SQL 2005,则可以在CLR集成程序集中执行此操作,并使用System.Net命名空间中的FTP类来构建简单的FTP客户端。

您可以从捕获和处理异常中受益,并降低必须使用xp_cmdshell的安全风险。

只是一些想法。

另一答案

另一种可能性是使用DTS或Integration Services(DTS用于SQL Server 7或2000,SSIS用于2005或更高版本)。两者都来自Microsoft,包含在Sql Server安装中(至少在标准版中),并且具有FTP任务,专为从Sql Server导入/导出作业而设计。

另一答案

如果你需要在数据库中进行FTP,那么我会像Kevin建议的那样使用.NET程序集。这将提供对流程的最大控制,此外,您还可以将有意义的错误消息记录到表中以进行报告。

另一种选择是编写一个命令行应用程序来读取数据库以运行命令。然后,您可以定义一个计划任务,以便每隔几分钟调用该命令行应用程序,或者轮询所需的任何时间。这比在数据库服务器中启用CLR支持更安全。

另一答案

Kev发布了一个示例over here,它实现了他的建议“在CLR集成组件中执行此操作,并使用System.Net命名空间中的FTP类来构建一个简单的FTP客户端。”

以上是关于从SQL Server 2005存储过程到FTP的最佳做法是什么?的主要内容,如果未能解决你的问题,请参考以下文章

撤消对 SQL Server 2005 数据库的更改

存储过程系列之调试存储过程 SQL Server 2005

存储过程系列之调试存储过程 SQL Server 2005

在存储过程 sql server 2005 中使用函数调用?

SQL Server 2005 视图与物化视图与存储过程

SQL Server 2005 事务复制无法发布包含索引创建的存储过程