2016-10-13 29 views
0

我需要將SQL SErver 2008 R2 Express表格的內容導出爲CSV或TXT文件。將SQL Server 2008 R2表格的內容導出爲CSV無xp_cmdshell

我無法啓用xp_cmdshell,也無法允許臨時分佈式查詢。

它需要從其中一個表上的觸發器執行。

+1

這聽起來像是一個可怕的黑客來克服一個更可怕的設計模式。 (對不起,我的意思不粗魯。)但是如果你真的想要走這條路,你可以通過包含powershell腳本的作業步驟來查看SQL代理作業,以將表數據導出到文件。觸發器可以調用'msdb.dbo.sp_start_job'。但嚴重的是,你好! – DMason

+0

它爲什麼需要觸發器? @DMason擁有正確的IMO。 – SMM

+0

是的,試圖從一個過時的系統(大約在1999年)獲取數據是非常可怕的破解,源代碼將很難修改。數據庫可以很容易地修改。它也運行SQL Express,對不起,我忘了提及,所以沒有SQL代理。如果有新數據,我只希望提取更新,因此是觸發器。我的另一個解決方案是使用PS腳本的任務計劃程序,但在可能沒有更新時繼續運行它似乎很愚蠢。提取只需要在有新數據時創建。提取物被提取並轉移到另一個系統進行報告。 – Maa421s

回答

0
USE master; 
GO 
EXEC sp_configure 'show advanced option', '1'; 
RECONFIGURE; 
EXEC sp_configure; 
EXEC sp_configure 'Ad Hoc Distributed Queries', '1'; 
RECONFIGURE; 
EXEC sp_configure; 

INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
         'Text;Database=C:\Temp\;HDR=Yes;', 
         'SELECT * FROM test.csv') 
      (object_id, name) 

SELECT 'object_id', 'name' 

UNION ALL 

SELECT object_id, name 
FROM sys.tables 

--This require csv file to be there at location 

如果在插入時遇到任何問題,請按照此Link

一旦工作,您在觸發器中使用相同的腳本。

+0

對不起,正如我的文章所述,我無法啓用'臨時分佈式查詢'。我認爲這是行不通的。謝謝 – Maa421s

相關問題