Yahoo Answers is shutting down on May 4th, 2021 (Eastern Time) and beginning April 20th, 2021 (Eastern Time) the Yahoo Answers website will be in read-only mode. There will be no changes to other Yahoo properties or services, or your Yahoo account. You can find more information about the Yahoo Answers shutdown and how to download your data on this help page.

Anonymous
Anonymous asked in 電腦與網際網路程式設計 · 1 decade ago

如何寫SQL Server的預存程序把資料表轉成純文字檔

如何寫SQL Server的預存程序把資料表轉成純文字檔

麻煩以北風資料庫(Northwind)的Customers來寫預存程序

每個欄位用逗號來區分

轉成純文字檔D:\test1.txt

麻煩了,謝謝

圖片參考:http://tw.yimg.com/i/tw/blog/rte/smiley_1.gif

Update:

謝謝你,程式執行成功,但只有一個欄位

請問如果要取出兩個欄位

例:LastNameFirstName

然後這兩個欄位要用逗號區分

請問預存程序要如何修改呢?

謝謝

Update 2:

另外,再請問一個問題

執行你的預存程序

不知為何最後一筆資料重複呢?

謝謝

Update 3:

謝謝你的回答

可是仍然不對

第二筆資料不見了

還有只有轉出一個欄位

我要兩個欄位

不知要如何修改呢

謝謝

3 Answers

Rating
  • 1 decade ago
    Favorite Answer

    CREATE PROCEDURE sp_AppendToFile1(@FileName varchar(255)) AS

    DECLARE @FS int,

    @OLEResult int,

    @FileID int

    DECLARE @au_lname varchar(40), @au_fname varchar(20)

    EXECUTE @OLEResult = sp_OACreate 'Scripting.FileSystemObject', @FS OUT

    IF @OLEResult <> 0 PRINT 'Scripting.FileSystemObject'

    --Open a file

    execute @OLEResult = sp_OAMethod @FS, 'OpenTextFile', @FileID OUT, @FileName, 8, 1

    IF @OLEResult <> 0 PRINT 'OpenTextFile'

    --Write Text1

    DECLARE Employee_Cursor CURSOR FOR

    SELECT LastName, FirstName

    FROM Northwind.dbo.Employees

    --WHERE LastName like 'B%'

    OPEN Employee_Cursor

    FETCH NEXT FROM Employee_Cursor

    INTO @au_lname ,@au_fname

    execute @OLEResult = sp_OAMethod @FileID, 'WriteLine', Null, @au_lname

    IF @OLEResult <> 0 PRINT 'WriteLine'

    WHILE @@FETCH_STATUS = 0

    BEGIN

    FETCH NEXT FROM Employee_Cursor

    INTO @au_lname ,@au_fname

    execute @OLEResult = sp_OAMethod @FileID, 'WriteLine', Null, @au_lname

    IF @OLEResult <> 0 PRINT 'WriteLine'

    END

    CLOSE Employee_Cursor

    DEALLOCATE Employee_Cursor

    EXECUTE @OLEResult = sp_OADestroy @FileID

    EXECUTE @OLEResult = sp_OADestroy @FS

    建立之後再執行

    DECLARE @RC int

    DECLARE @FileName varchar(255)

    SET @FileName = 'D:\Test1.TXT'

    -- Set parameter values

    EXEC @RC = [Northwind].[dbo].[sp_AppendToFile1] @FileName

    我們是

    SAP / Oracle / DB2 / MSSQL 顧問

    OpenSource ERP Adempiere

    北美與中國(含台灣區)技術支持團隊

    2007-12-13 23:35:05 補充:

    麻煩以北風資料庫(Northwind)的Customers來寫預存程序

    我用 Northwind.Employee

    你應該會模仿

    祝你成功

    2007-12-15 15:34:04 補充:

    不知為何最後一筆資料重複呢?

    加上篩選器

    WHILE @@FETCH_STATUS = 0

    BEGIN

    FETCH NEXT FROM Employee_Cursor

    INTO @au_lname ,@au_fname

    IF @au_lname<>@auXlname OR @au_fname<>@auXfname

    BEGIN

    execute @OLEResult = sp_OAMethod @FileID, 'WriteLine', Null, @au_lname

    2007-12-15 15:34:09 補充:

    IF @OLEResult <> 0 PRINT 'WriteLine'

    END

    SET @auXlname=@au_lname

    SET @auXfname=@au_fname

    END

    Source(s): SAP / Oracle / DB2 / MSSQL 顧問 OpenSource ERP Adempiere 北美與中國(含台灣區)技術支持團隊
  • 6 years ago

    不管什麼廠牌備份可是要小心,電源供應器要用好點的,硬碟救援可以找這家 , 資料救援

    http://data-recovery.myweb.hinet.net/

    http://millerforyew1.pixnet.net/blog/

    http://mypaper.pchome.com.tw/twdatahelp/

    http://blog.xuite.net/stellate94533/blog/

  • 6 years ago

    手機刪除line照片不見真的難過

    這家案例夠多,手機記憶體內外都可以,也沒限什麼牌子三星,HTC,SONY都可以,不過要等的比較久才知道原來要分析不是換零件哪麼簡單,心急吃不了熱豆腐,http://www.datahelp.com.tw/

    htt[://www.data1.com.tw

Still have questions? Get your answers by asking now.