bcp 可以实现数据的导入导出。
EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect in c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
//导入 EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect out c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
//导出

解决方案 »

  1.   

    DECLARE @object int
    DECLARE @hr int
    DECLARE @src varchar(255), @desc varchar(255)
    Declare @tmp int
    declare @msg varchar(3000)SET @msg='Hello. MS SQL Server 2000. I Love you!!!'   --這字串將會被寫到SQL Server的安裝目錄下的Nipsan.Txt文件里面/*  取得SQL Server的安裝路徑*/
    declare @strPath  nvarchar(512)
    Exec sp_MSGet_Setup_paths @strPath OUTPUT
    Set @strPath=@strPath+'\Nipsan.Txt'   --組成文件名
     --創建Scripting組件實例
    EXEC @hr = sp_OACreate 'Scripting.FileSystemObject', @object OUT
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
       SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
        RETURN
    END--創建文件
    EXEC @hr = sp_OAMethod @object, 'CreateTextFile', @tmp OUTPUT , @strPath
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END
    --把@msg寫到文件里面去
    EXEC @hr = sp_OAMethod @tmp, 'Write',NULL, @msg
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END
    --關閉文件
    EXEC @hr = sp_OAMethod @tmp, 'Close',NULL
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END-----------寫文件操作Demo完成-----------------------------------------------------------------打開文件
    EXEC @hr = sp_OAMethod @object, 'OpenTextFile', @tmp OUTPUT ,@strPath
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    ENDSET @msg=''
    --讀文件
    EXEC @hr = sp_OAMethod @tmp, 'Read', @msg OUT,3000
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END
    -----讀文件操作Demo完成
    SELECT @msg AS RESULT
      

  2.   

    非格式化的一些数据可以用xp_cmdshell调用DOS命令来写入文本文件,如这个小例子,写入一个变量到文本文件这段代码可以修改后嵌到你的存储过程里:
    DECLARE @var varchar(100)
    DECLARE @i int
    DECLARE @cmd sysname
    set @i=120
    SET @var = '@i='+cast(@i as varchar(10))
    SET @cmd = 'echo ' + @var + ' > VarOut.txt'
    EXEC master..xp_cmdshell @cmd
    4、高手门可能还有好方法。
      

  3.   

    sql server对文本的处理还是不够灵活和高效的,所以MSSQL SERVER提供一种扩展的工具,你可以通过VC写扩展的EXTEND STORED PROCEDURE来处理一些MSSQLSERVER无法处理的事件.