SQL SErver 2008 R2 Expressテーブルの内容をCSVファイルまたはTXTファイルにエクスポートする必要があります。xp_cmdshellなしでCSVにSQL Server 2008 R2テーブルの内容をエクスポート
xp_cmdshellを有効にすることはできません。また、随時分散クエリを許可することもできません。
テーブルのいずれかのトリガーから実行可能である必要があります。
SQL SErver 2008 R2 Expressテーブルの内容をCSVファイルまたはTXTファイルにエクスポートする必要があります。xp_cmdshellなしでCSVにSQL Server 2008 R2テーブルの内容をエクスポート
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 Agentジョブを調べることがあります。トリガが 'msdb.dbo.sp_start_job'を呼び出す可能性があります。しかし、真剣に、ゆっくり! – DMason
なぜトリガーにする必要がありますか? @DMasonはそれが正しいIMOを持っています。 – SMM
はい、ソースコードを変更するのが非常に難しい古いシステム(1999年頃)からデータを取得しようとすると、ひどいハックです。 DBは簡単に変更できます。それはまた、SQL Expressを実行している、私は言及を忘れて、申し訳ありませんので、SQLエージェントはありません。私は新しいデータがある場合にのみ抽出を更新したいので、トリガーです。私の他の解決策は、PSスクリプトを使用したタスクスケジューラですが、アップデートがない場合でも実行し続けるのは馬鹿に思えます。抽出は、新しいデータがある場合にのみ作成する必要があります。抽出物は回収され、報告のために別のシステムに移される。 – Maa421s