- ベストアンサー
リンクサーバ(PostgreSQL)に対してのDelete文の発行
SQL2000サーバのデータベースにあるデータをDTSを使用して、PostgreSQLサーバにバッチで転送する仕組みを作っています。 DTSでデータ変換タスク自体はうまくいったのですが、転送する際の前処理としてDELETE文を発行したいのですが、やり方が分からず困っております。 OPENQUERYを使うのかなぁという印象はあるのですが、HELPでの例が、SELECT文のみだったのでご教授頂けないでしょうか よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 >OPENQUERY(リンクサーバー名, 'SELECT * FROM ポスグレテーブル') > >の場合うまくいきましたが、 > >DELETE FROM >FROM リンクサーバー名...ポスグレテーブル >サーバー : メッセージ 7314、レベル 16、状態 1、行 1 すみません。ちょっと原因はわかりません。 前に、SPが当たってない関係で、同様のエラーが出た記憶がありますが、その時は、テーブル名を大文字にして回避したような。 (かなり、うろ覚えです)
その他の回答 (1)
- utakataXEX
- ベストアンサー率69% (711/1018)
DELETE FROM OPENQUERY(リンクサーバー名, 'SELECT * FROM ポスグレテーブル') でもOKなはずですが、普通は DELETE FROM FROM リンクサーバー名...ポスグレテーブル みたいにしますね。
補足
ご回答ありがとうございます DELETE FROM OPENQUERY(リンクサーバー名, 'SELECT * FROM ポスグレテーブル') の場合うまくいきましたが、 DELETE FROM FROM リンクサーバー名...ポスグレテーブル 実際には delete from POSTGRESQL...test_master_user とすると、 サーバー : メッセージ 7314、レベル 16、状態 1、行 1 OLE DB プロバイダ 'POSTGRESQL' はテーブル 'test_master_user' を持っていません。テーブルが存在しないか、現在のユーザーがそのテーブルに権限を持っていません。 OLE DB エラー トレース [Non-interface error: OLE DB provider does not contain the table: ProviderName='POSTGRESQL', TableName='test_master_user']。 というエラーが出てしまいました。OPENQUERYを使用しない実装をしたいと考えていますが、原因について何か分かることがあればご教授頂けないでしょうか。
お礼
ありがとうございます 早速確認してみます