下面是我将带有 SQL 的文件推送到另一台服务器的代码。
EXEC [ftpPushRegisteredSSIS] '12345', '54321', 'C:\TCC\Manufacturer Integration\100_110 – DiaryBelle','Daily_Dairybelle.txt', '111.111.111.11', 1, 1
CREATE PROCEDURE [dbo].[FtpPushRegisterSSIS]
@User VARCHAR(50),
@Password VARCHAR(50),
@sourceDir VARCHAR(250),
@SourceFiles VARCHAR(50),
@DestinationFTPServer VARCHAR(50),
@DestinationFTPPath VARCHAR(250),
@Overwrite BIT,
@isASCII BIT
AS
BEGIN
DECLARE @overwriteTF VARCHAR(5)
DECLARE @isASCIITF VARCHAR(5)
SET @overwriteTF = 'true'
SET @isASCIITF = 'true'
IF @Overwrite = 0
BEGIN
SET @overwriteTF = 'false'
END
IF @isASCII = 0
BEGIN
SET @isASCIITF = 'false'
END
-- DECLARE @FtpPackage VARCHAR(150)
-- SET @FtpPackage = 'E:\ftpProcTesting\ftpPush.dtsx'
DECLARE @cmd VARCHAR(1000)
DECLARE @params VARCHAR(MAX)
SET @params = ' /set \package.variables[ftpUser].Value;"' + @User + '"'+
' /set \package.variables[ftpServer].Value;"' + @DestinationFTPServer + '"'+
' /set \package.Variables[sourceDir].Value;"' + @sourceDir + '"' +
' /set \package.variables[sourceFiles].Value;"' + @SourceFiles + '"'+
' /set \package.variables[destiPath].Value;"/' + @DestinationFTPPath + '"' +
' /set \package.variables[ftpPass].Value;"' + @Password + '"' +
' /set \package.variables[overwrite].Value;"' + @overwriteTF + '"' +
' /set \package.variables[isASCII].Value;"' + @isASCIITF + '"'
-- FOR Filesystem package SET @cmd = 'dtexec /f "'+@FtpPackage+'" /Rep N' --set N to V for verbose logging
SET @cmd = 'dtexec /sq ' + 'ftpPush' + ' /ser DBNAME '
SET @cmd = @cmd + @params
CREATE TABLE #output ([output] VARCHAR(500))
INSERT INTO #output
EXEC master.dbo.xp_cmdshell @cmd -- ,NO_OUTPUT
IF (
SELECT COUNT(*)
FROM #output
WHERE [output] LIKE '%fail%'
OR [output] LIKE '%error%'
OR [output] LIKE '%not valid%'
) > 0
BEGIN
SELECT * FROM #output
RAISERROR('***|||FTP Operation FAILED|||***',15,1)
END
SELECT * FROM #output
END
GO
当文件Dairybelle.txt
到达服务器时,我希望它在文件名前面包含 getDate()。
像这样的东西:2012-08-01_Dairybelle.txt
我可以对我的代码进行哪些更改来执行此操作?
我不想更改当前位置的文件名,我只想在发送时更改它。因此,该名称仍将始终Dairybelle.txt
在我的服务器上,但是当它到达它们时,它将具有重命名的文件。
我知道我可以编写代码来更改文件名,然后在发送后将其更改回来,但我确定有更简单的方法吗?