萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mssql數據庫 >> 數據從SQL Server輸到文本文件

數據從SQL Server輸到文本文件

  你需要做的第一件事是確定xp_cmdshell是可用的。你可以選擇下面兩種方法中的一種來實現。

  1.你可以使用sp_configure並執行下面的腳本。

數據從SQL Server輸到文本文件 三聯

EXEC master.dbo.sp_configure 'show advanced options', 1

RECONFIGURE
EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE

  2.你可以使用Surface Area Configuration工具。

  選擇功能中的Surface Area Configuration並檢查Enable xp_cmdshell檢驗欄。

  圖一

  現在既然你已經使xp_cmdshell可用,那麼你可以准備輸出你的文件。

  下面是一個示例命令,它將把系統文件表的結果輸出到以逗號分割的文件bcptest.txt中。只需復制並把它粘貼到一個查詢窗口中且執行這個查詢。

  EXEC xp_cmdshell 'bcp "SELECT * FROM sysfiles" queryout "C:bcptest.txt" -T -c -t,'

  注:BCP是一個命令行實用工具,xp_cmdshell要求只能在一個SQL批處理內使用。

  當在"master"數據庫中執行上面的命令時將得到這個輸出結果。

  圖二

  使用的參數是:

  l Queryout選項允許你指定一個查詢來輸出。這可以像我們使用的查詢那樣簡單也可以像你需要的那樣復雜。你也可以創建一個視圖並從視圖中選擇數據。

  l file name是存儲結果的,它位於queryout選項之後。

  l -T參數指定bcp實用工具通過集成安全使用一個可信連接來連接到SQL Server。如果你想使用一個SQL Server登陸,那麼你可以使用-P(密碼)和-U(用戶)。

  l -c指定將用於各個字段的字符數據類型。

  l -t參數允許你指定一個字段定界符。在-t之後的字符將用於隔開數據字段。如果-t被刪除了,那麼tab將用於默認定界符。

  另一個你可能需要使用的參數是-S,你可以用它來指定服務器名稱。如果你有一個指定的實例,那麼你需要使用這個參數。下面是一個連接到服務器"DEVELOP" 和實例 "DEV1"的例子。

  EXEC xp_cmdshell 'bcp "select name, type_desc, create_date from sys.objects" queryout "C:bcptest2.txt" -T -SDEVELOPDEV1 -c -t,'EXEC xp_cmdshell 'bcp "select name, type_desc, create_date from sys.objects" queryout "C:bcptest2.txt" -T -SDEVELOPDEV1 -c -t,'

  你也必須知道使用參數-t和-T的實例是不一樣的,所以要保證你在實例中使用正確的參數。

copyright © 萬盛學電腦網 all rights reserved