![](/img/trans.png)
[英]What is the best method for checking if a file exists from a SQL Server 2005 stored procedure?
[英]What is best practice for FTP from a SQL Server 2005 stored procedure?
從 SQL Server 存儲過程執行 FTP 命令的最佳方法是什么? 我們目前使用這樣的東西:
EXEC master..xp_cmdshell 'ftp -n -s:d:\ftp\ftpscript.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支持更安全。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.