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

解决方案 »

  1.   

    --------------以下是从SQL SERVER帮助拷贝的帮助------------------H. 使用用于 Jet 的 Microsoft OLE DB 提供程序访问文本文件
    此示例创建一台直接访问文本文件的链接服务器,而没有将这些文件链接为 Access .mdb 文件中的表。提供程序是 Microsoft.Jet.OLEDB.4.0,提供程序字符串为"Text"。数据源是包含文本文件的目录的完整路径名。schema.ini 文件(描述文本文件的结构)必须与此文本文件存在于相同的目录中。有关创建 schema.ini 文件的更多信息,请参见 Jet 数据库引擎文档。--Create a linked server
    EXEC sp_addlinkedserver txtsrv, 'Jet 4.0', 
       'Microsoft.Jet.OLEDB.4.0',
       'c:\data\distqry',
       NULL,
       'Text'
    GO--Set up login mappings
    EXEC sp_addlinkedsrvlogin txtsrv, FALSE, Admin, NULL
    GO--List the tables in the linked server
    EXEC sp_tables_ex txtsrv
    GO--Query one of the tables: file1#txt
    --using a 4-part name 
    SELECT * 
    FROM txtsrv...[file1#txt]
      

  2.   

    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""'
    //导出BULK INSERT yourdb.dbo.ttt
       FROM 'c:\temp1.txt'
       WITH 
          (
             FIELDTERMINATOR = ',',
             ROWTERMINATOR = '\n'
          )
    goselect * from ttt