我想用ISQL来执行SQL脚本
但是这个脚本的内容不知道怎么写
就是登陆FTP下载文件 退出FTP 然后主机执行下载文件
因为ISQL可以不恢复储存就能执行的 所以用ISQL

解决方案 »

  1.   

    使用DTS或者SSIS下载比较好一些,
    纯SQL脚本的还没有试过.呵呵
      

  2.   


    LZ说的是ISQL== 我试一下
    应该没有问题
      

  3.   

    xp_cmdshell + 批处理命令
      

  4.   

    哈哈
    不好意思
    那天比较忙,所以就告诉你我不试了,免得害你等我的答案写两个吧1 批处理
    --放到.bat 或 .cmd 文件里 执行
    --想要别的功能的话,可以追加
    [code=BatchFile]
    @echo off & setlocal enabledelayedexpansionset ftpSv=192.168.1.1
    set ftpUser=test
    set ftpPwd=test
    set ftpFolder=\ftpgettest\
    set a=abc.xls
    set b=eft.xls
    call :_FtpSchema
    ftp.exe -n -s:%temp%\NewContractFtp.txt pause:_FtpSchema
    echo open %ftpSv%>%temp%\NewContractFtp.txt
    echo user %ftpUser%>>%temp%\NewContractFtp.txt
    echo %ftpPwd%>>%temp%\NewContractFtp.txt
    echo cd %ftpFolder% >>%temp%\NewContractFtp.txt
    echo binary >>%temp%\NewContractFtp.txt
    echo get %a%.cab >>%temp%\NewContractFtp.txt
    echo get %b%.cab >>%temp%\NewContractFtp.txt
    echo close >>%temp%\NewContractFtp.txt
    echo quit >>%temp%\NewContractFtp.txt
    goto :EOF[/code]2 ISQL 其实和上面的一样  
    --放到.bat 或 .cmd 文件里 执行
    --因为ISQL和OSQL就是批处理命令[code=BatchFile]@echo off
    echo.
    echo.
    echo.
    echo.
    echo.
    echo just do it now....wait for 3 seceonsping 127.0.0.1 -n 3 >nulISQL -Q"exec master..xp_cmdshell 'echo open 172.18.1.1 > %temp%\ftpget.txt'" -S(Local) -Usa -Psaer >nul
    cls&echo .
    ISQL -Q"exec master..xp_cmdshell 'echo user test>> %temp%\ftpget.txt'" -S(Local) -Usa -Psaer >nul
    cls&echo ..
    ISQL -Q"exec master..xp_cmdshell 'echo test>> %temp%\ftpget.txt'" -S(Local) -Usa -Psaer >nul
    cls&echo ...
    ISQL -Q"exec master..xp_cmdshell 'echo cd \DE\>> %temp%\ftpget.txt'" -S(Local) -Usa -Psaer >nul
    cls&echo ....
    ISQL -Q"exec master..xp_cmdshell 'echo lcd D:\>> %temp%\ftpget.txt'" -S(Local) -Usa -Psaer >nul
    cls&echo .....
    ISQL -Q"exec master..xp_cmdshell 'echo get asdfasdf.txt>> %temp%\ftpget.txt'" -S(Local) -Usa -Psaer >nul
    cls&echo ......
    ISQL -Q"exec master..xp_cmdshell 'echo get dfdfdfee.xls>> %temp%\ftpget.txt'" -S(Local) -Usa -Psaer >nul
    cls&echo .......
    ISQL -Q"exec master..xp_cmdshell 'echo close>> %temp%\ftpget.txt'" -S(Local) -Usa -Psaer >nul
    cls&echo ........
    ISQL -Q"exec master..xp_cmdshell 'echo quit>> %temp%\ftpget.txt'" -S(Local) -Usa -Psaer >nul
    cls&echo .........
    ISQL -Q"exec master..xp_cmdshell 'ftp.exe -n -s:%temp%\ftpget.txt'" -S(Local) -Usa -Psaer >nul
    set /p a= it is over [Enter for Close]
    [/code]还有什么问题
    以后再联系吧发贴20分关注率低,哈哈
      

  5.   

    忘了加注释了哈哈,
    set ftpSv=192.168.1.1--服务器IP
    set ftpUser=test--user
    set ftpPwd=test--password
    set ftpFolder=\ftpgettest\--work path
    set a=abc.xls--the file what you wanna get
    set b=eft.xls--the file what you wanna get 下面的那个同理
      

  6.   

    再写最后一个方法下面的代码保存到 D:\fileget.txtexec master..xp_cmdshell 'echo open 172.18.1.1 > %temp%\ftpget.txt'
    exec master..xp_cmdshell 'echo user guestuser>> %temp%\ftpget.txt'
    exec master..xp_cmdshell 'echo dalianguestuser>> %temp%\ftpget.txt'
    exec master..xp_cmdshell 'echo cd \DataExchange\ >> %temp%\ftpget.txt'
    exec master..xp_cmdshell 'echo lcd D:\ >> %temp%\ftpget.txt'
    exec master..xp_cmdshell 'echo get aa.txt >> %temp%\ftpget.txt'
    exec master..xp_cmdshell 'echo get bb.xls >> %temp%\ftpget.txt'
    exec master..xp_cmdshell 'echo close >> %temp%\ftpget.txt'
    exec master..xp_cmdshell 'echo quit >> %temp%\ftpget.txt'
    exec master..xp_cmdshell 'ftp.exe -n -s:%temp%\ftpget.txt'在CMD下执行
    [code=BatchFile]isql -S(local) -Usa -Psaer -i"D:\fileget.txt">nul[/code]这个是你想要得吧要是给我追加点儿分,还给你别的功能 哈哈
     
      

  7.   


    内网泄漏
    open 172.18.1.1 
    哈哈
      

  8.   

    后面的2个方法都用了CMDSHELL
    能不能不用储存用ISQL去下载FTP里的文件