問題タブ [openquery]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 2 つのテーブルを結合しているときに OPENQUERY を使用してデータを抽出するときに重複キーを無視する方法は?
「OPENQUERY」を使用して MS SQL Server から MySQL データベースにレコードを挿入しようとしていますが、重複キー メッセージを無視しようとしています。そのため、クエリが重複して実行された場合は、それを無視して続行します。
重複を無視するにはどうすればよいですか?
これが私がやっていることです:
- 「OpenQuery」を使用してMySQLからレコードをプルし、MySQL「A.record_id」を定義します
- ここから、これらのレコードを MS SQL Server のレコードに「直接 ID ではなく特定の基準で」結合すると、SQL Server で新しい関連する「B.new_id」レコード識別子が見つかります。
- A.record_id、B.new_idのように、見つかった結果をMySQLの新しいテーブルに挿入したい ここでは、新しいテーブルで A.record_id をそのテーブルの主キーとして設定しています。
問題は、テーブル A をテーブル B に結合するときに、探している基準に一致するテーブル B に 2 つ以上のレコードが見つかることがあり、テーブル A に挿入する前に、値 A.record_id がデータセットで 2 回以上になることです。これが問題の原因です。集計関数を使用してレコードを削除できることに注意してください。
sql-server - i5 ODBC ドライバーを介して ms sql サーバー 2012 でオープン クエリを使用する DB2 v 6.x の正しい日付 (変換) は何ですか?
mssql2012 からのオープン クエリを使用して、IBM の System i ODBC ドライバー for i5;DB2 バージョン 6.x からデータを抽出しようとしています。クエリは日付範囲述語を使用しています: where date(rhinvdt) between date('01/01/12') and date('01/31/14')* . これにより、次のメッセージが返されます。
"[IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0181 - 日付、時刻、またはタイムスタンプ文字列の値が無効です。 ".
IBM Data Studio でまったく同じクエリ (カット アンド ペースト) を実行すると、クエリは成功し、期待されるデータが返されます。IBM Data Studio がリンク サーバー接続を介して jdbc と mssql2012 のオープン クエリを使用していることは認識していますが、Iseries 側の日付変換関数について十分に理解していないため、変換のより良い代替手段を openquery に使用する必要があるかどうかを判断できません。ところで、私はSQLを出力するので、構文が正しいかどうかを確認できます。これは、mssql2012 メッセージ出力からカット アンド ペーストして、そのまま IBM Data Studio 経由で実行し、結果セットを取得できたものです。次のステートメントも実行しました。select current date from sysibm.sysdummy1; IBM Data Studio からデフォルトの日付設定を取得すると、02/05/14 が返され ました。
これがコードです
以下は、print @sqlの結果です。
sql-server - SQL サーバー UPDATE OPENQUERY
2 つのサーバー (ホストは SQL Server 2008、宛先は ORACLE) をリンクして、Oracle サーバーのテーブルに SQL サーバーの複数のテーブルに保持されているデータが入力されるようにしようとしています。
私はINSERT OPENQUERYを設定しましたが、これは完全に正常に機能します。また、これらのレコードを更新する別のクエリをセットアップしたいと考えています。
したがって、私の挿入クエリは、過去 24 時間に作成されたレコードを選択して挿入しますが、問題ありません。しかし、関連する変更を行うために 24 時間ごとに実行される UPDATE OPENQUERY スクリプトの作成に苦労しています。
ここに私の挿入があります
助けてくれてありがとう。私は周りを検索しましたが、OPENQUERY で多くを見つけることができません。それはすべてかなり基本的なもののようです。この構文の例に従ってみましたが、どこにも行きませんでした...
sql-server - 変数リストをある OpenQuery から別の OpenQuery に渡す
質問するのは初めてですが、Stackoverflow を何年も使用しています。
互いに通信しない 2 つの個別にリンクされたサーバーがあります。1 つのサーバーから SQL に変数のリストを取得し、その変数のリストを 2 番目の OpenQuery に渡して、そのサーバーから SQL にデータを取り込む必要があります。単一キーの変数を渡すことができました。しかし、文字列化された OpenQuery または単に文字列化されたクエリを使用しようとすると、エラーが返されます。誰かが私を正しい方向に向けることができますか?
現在のクエリ:
あなたが与えることができるどんな援助も大歓迎です。
2008 SQL サーバーで実行されている SSMS 2012 を使用しています。リンクされた 2 つのサーバーは、リモート接続できない Oracle サーバーです。
sql - XML データを使用した Openquery: '<' 付近の構文が正しくありません
私はこのコードを持っています:
PRINT @SqlCommand 出力の一部は次のとおりです。
そして、EXEC sp_ExecuteSQL @SqlCommand;
私が得る:
Incorrect syntax near '<'
.
私は何を間違っていますか?
sql - openqueryを使用した一時テーブルのSQL無効なオブジェクト名
SQL クエリは次のとおりです。
このステートメントは、一時テーブルの挿入までうまく実行されます。結果は「49134行が挿入されました」と表示されます。ただし、Tempdb に存在する「無効なオブジェクト名 #Order」というエラーが表示されます。