0
我需要將SQL SErver 2008 R2 Express表格的內容導出爲CSV或TXT文件。將SQL Server 2008 R2表格的內容導出爲CSV無xp_cmdshell
我無法啓用xp_cmdshell,也無法允許臨時分佈式查詢。
它需要從其中一個表上的觸發器執行。
我需要將SQL SErver 2008 R2 Express表格的內容導出爲CSV或TXT文件。將SQL Server 2008 R2表格的內容導出爲CSV無xp_cmdshell
我無法啓用xp_cmdshell,也無法允許臨時分佈式查詢。
它需要從其中一個表上的觸發器執行。
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。
一旦工作,您在觸發器中使用相同的腳本。
對不起,正如我的文章所述,我無法啓用'臨時分佈式查詢'。我認爲這是行不通的。謝謝 – Maa421s
這聽起來像是一個可怕的黑客來克服一個更可怕的設計模式。 (對不起,我的意思不粗魯。)但是如果你真的想要走這條路,你可以通過包含powershell腳本的作業步驟來查看SQL代理作業,以將表數據導出到文件。觸發器可以調用'msdb.dbo.sp_start_job'。但嚴重的是,你好! – DMason
它爲什麼需要觸發器? @DMason擁有正確的IMO。 – SMM
是的,試圖從一個過時的系統(大約在1999年)獲取數據是非常可怕的破解,源代碼將很難修改。數據庫可以很容易地修改。它也運行SQL Express,對不起,我忘了提及,所以沒有SQL代理。如果有新數據,我只希望提取更新,因此是觸發器。我的另一個解決方案是使用PS腳本的任務計劃程序,但在可能沒有更新時繼續運行它似乎很愚蠢。提取只需要在有新數據時創建。提取物被提取並轉移到另一個系統進行報告。 – Maa421s