• ベストアンサー

リンクサーバ(PostgreSQL)に対してのDelete文の発行

SQL2000サーバのデータベースにあるデータをDTSを使用して、PostgreSQLサーバにバッチで転送する仕組みを作っています。 DTSでデータ変換タスク自体はうまくいったのですが、転送する際の前処理としてDELETE文を発行したいのですが、やり方が分からず困っております。 OPENQUERYを使うのかなぁという印象はあるのですが、HELPでの例が、SELECT文のみだったのでご教授頂けないでしょうか よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.2

#1です。 >OPENQUERY(リンクサーバー名, 'SELECT * FROM ポスグレテーブル') > >の場合うまくいきましたが、 > >DELETE FROM >FROM リンクサーバー名...ポスグレテーブル >サーバー : メッセージ 7314、レベル 16、状態 1、行 1 すみません。ちょっと原因はわかりません。 前に、SPが当たってない関係で、同様のエラーが出た記憶がありますが、その時は、テーブル名を大文字にして回避したような。 (かなり、うろ覚えです)

marimo767
質問者

お礼

ありがとうございます 早速確認してみます

その他の回答 (1)

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

DELETE FROM OPENQUERY(リンクサーバー名, 'SELECT * FROM ポスグレテーブル') でもOKなはずですが、普通は DELETE FROM FROM リンクサーバー名...ポスグレテーブル みたいにしますね。

marimo767
質問者

補足

ご回答ありがとうございます 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を使用しない実装をしたいと考えていますが、原因について何か分かることがあればご教授頂けないでしょうか。

関連するQ&A