問題タブ [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.

0 投票する
1 に答える
262 参照

linked-list - リンク サーバーへのデータ ソース ビューを作成するときに使用する正しい構文はどれですか?

いくつかのステートメントを試しましたが、これは少なくともデータを返します..しかし、エラーメッセージが表示されます: Deferred prepare could not be prepare. ')' 付近の構文が正しくありません。キーワード「DECLARE」付近の構文が正しくありません。次のステートメントは、namedquery の作成時に実行されました。

リンクサーバーとSSASは初めてです。当社初の連携サーバーからのCubeです。私のクエリは Management Studio で実行され、SSRS レポートを作成しますが、遅いです。どんな提案も役に立ちます。Web でのこの状況の構文に関する情報はあまりありません。私はそのような状況を探していましたが、サーバーで変更を試みる以外に多くの助けが見つかりませんでした. 例: openrowset がオンになっていることを確認し、OWC コンポーネントを再インストールします。その機能がありません。

0 投票する
2 に答える
14901 参照

mysql - MySQL リンク サーバーで openquery を使用すると、ワイド varchar フィールドにより「要求された変換はサポートされていません」というエラーが発生する

を使用してテーブルを MySql から MSSQL に移行しようとしてopenqueryいますが、次のエラー メッセージが表示され続けます。

実行しようとしている SQL クエリ:

私はすでにいくつかのテーブルをコピーしましたが、これopenqueryは私をだまします。

データベースの両側で、descriptionフィールドはvarchar(8000). MySql では、説明が null で、最長の説明が 5031 文字しかない行はありません。

同じデータ構造を持つ MySql で新しいビューを作成しようとしましたが、同じエラーが発生しました。テーブルに 65000 を超える行が含まれているため、どの行に無効な説明フィールドがあるかを判断できません。

また、データをSQLファイルにダンプしようとしましたがOutOfMemoryException、Management Studioになりました。ダンプされた sql ファイル自体は約 60 MB です。

このデータを移行するための提案やその他の方法はありますか?

前もって感謝します!

0 投票する
2 に答える
24010 参照

sql - リンク サーバーの接続を TSQL でテストする方法

複数のリモート サーバーからデータを収集する手順を記述する必要があります。

リンクサーバーと OPENQUERY を使用してサーバーからデータを収集しますが、一部のサーバーへの接続が失われたり、単純に接続できない場合があります (たとえば、リモートサーバーがオフラインです)。このような場合、OPENQUERY はタイムアウトになります。

したがって、最初にリンクサーバーの接続を確認し、成功した場合はクエリを実行し、次のリモートサーバーに移動するだけではありませんでした。

OPENQUERY を TRY - CATCH に入れようとしましたが、それでもタイムアウト エラーが返され、sp_testlinkedserver プロシージャもタイムアウト エラーが返されました。

助けていただければ幸いです。

0 投票する
2 に答える
4823 参照

mysql - リンクサーバーMySQLを使用してエラーを挿入

次のプロバイダー文字列を持つODBCドライバーを使用してリンクサーバーを作成しました

リンクされたサーバーの名前はMYSQLです。そのように選択して更新すると、正しく機能します

次の構文で挿入を実行しようとすると

私はこの次のエラーがあります

0 投票する
2 に答える
8716 参照

sql-server-2005 - OPENQUERY 文字列内のストアド プロシージャ/SQL 変数

ストアド プロシージャ内で (リンク サーバーからデータを取得するための) OPENQUERY の使用に問題があります。私はSQL変数を読んでいますが、うまくいかないようです.SQLの変数/文字列を誤解している可能性があります. 「「+」付近の構文が正しくありません」というエラーがスローされます。何が間違っているのかわかりません。

コード:

理論的には、これは機能するはずですか?

0 投票する
3 に答える
7044 参照

mysql - SQL server openquery - 「キー列情報が不十分であるか正しくありません。更新によって影響を受けた行が多すぎます。」

Micrsoft SQL サーバーから削除クエリを実行して、リモートの mySQL テーブルのテーブルをクリアしようとしています。

クエリは次のとおりです。

これはエラーを返しています:

リンク サーバー "WEB_DB" の OLE DB プロバイダー "MSDASQL" から、"キー列情報が不十分であるか正しくありません。更新の影響を受けた行が多すぎます。" が返されました。メッセージ 7345、レベル 16、状態 1、行 1 リンク サーバー "WEB_DB" の OLE DB プロバイダー "MSDASQL" は、テーブル "select id,university_name,college_name from table_name" から削除できませんでした。更新はスキーマ要件を満たしていませんでした。

テーブルの作成に使用する SQL は次のとおりです。

興味深いことに、リモート データベース レコードの一部を削除しているように見えます。約 900 あるはずですが、delete コマンドを初めて実行すると、これが約 700 に減少するため、制限は約 200 行になるようです?!

どんな助けでも大歓迎です。

ありがとうジョナ

0 投票する
1 に答える
880 参照

sql-server - SQL Server ストアド プロシージャ キャッシュ

2 つのさまざまな方法で同じ選択を実行しようとしています。

最初に、ストアド プロシージャを使用したテーブル値関数を介して

openqueryストアド プロシージャの実行による2 番目の経由

問題は、さまざまな結果が得られることです。問題はストアド プロシージャ キャッシュにあると思います。誰でもこれで私を助けることができますか?

0 投票する
2 に答える
38438 参照

sql-server-2008 - SQL Server でテーブル値関数をリモートで呼び出すための回避策には、さらに多くの問題があります

さまざまなパラメーターを使用して複数回実行する必要がある一連のパラメーターを含むクエリがあったため、それをテーブル値関数でラップしました。

そのテーブル値関数は、リモート サーバーから呼び出される必要がありました。残念ながら、リンク サーバーでの呼び出しは次のエラーで失敗します。

Microsoft は、"テーブル値関数をリモートで呼び出す" 機能が SQL Server 2008 から除外されていたことを認めています。 - 通話は許可されていません

OPENQUERY 構文を使用する回避策を発見しました。これにより、クエリをリモート サーバー上でローカルに実行し、結果セットを返すことができます。参照: http://social.msdn.microsoft.com/Forums/en/transactsql/thread/7a6e4aa1-630b-4ad5-aee5-15139987adbd

残念ながら、この回避策には回避策が必要でした。これは、引数として文字列が必要なためです。つまり、OPENQUERY 構文を使用して変数を渡すことはできず、変数を含めたい場合のように、その中に文字列を連結することさえできません。リモート テーブル値関数に渡したい。回避策の回避策は、動的 SQL を使用して OPENQUERY クエリを明示的に構築し、通常の文字列が確実に渡されるようにすることです。参照: http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/0847ad24-0dfe-4ae1-9788-5516c7830f40/

しかし、このことから別の問題が生じます。すべての引用符、二重引用符、および四重引用符が正しく埋め込まれていることを確認した後でも、すべてを exec sp_executesql を介して渡すことができるため、まだ問題があります。

クエリが最終的にテーブル値関数を呼び出すと、次のエラーが発生します。

ユーザー名のマッピングが存在するため、このエラーが発生する理由がわかりません。テーブル値関数を実際のテーブルに置き換えるだけで、結果が正常に返されます。この問題は、sp_executesql で実行されるかどうかに関係なく、OPENQUERY ステートメントで発生します。前述のとおり、テーブル値関数を呼び出す場合にのみ発生します。

これを解決する方法はありますか?

0 投票する
1 に答える
1224 参照

tsql - GUIDでActive DirectoryユーザーとSQLテーブルを結合するトリッキーな問題

さて、Active Directory の Guid によってユーザーを識別する SQL のテーブルがいくつかあります。当初、開発チームはユーザー ベースを sql にミラーリングするだけでよかったのですが、管理者はそれを Active Directory に保持するように主張しました。いずれにせよ、実行しようとしている操作の 1 つは、ユーザーの Guid とその他の情報を含む SQL からテーブルを取得し、それを openquery から AD に生成されているテーブルに結合することです。

問題は、ユーザーが AD から削除されると、開いているクエリが吐き出すことです。存在しない Active Directory のエントリに移動しようとしており、それが実際のクエリではない (基本的にはインデックスである) ため、エラーが発生したためだと思います。これは、ユーザーをプルするために使用している LDAP 文字列です。

またはより具体的には、次のようなもの

これがインデックスではなくクエリである場合、またはこの場合は「フィルター」である場合、(objectGuid=x) はエラーをスローする代わりに単に結果を返しません。しかし、ここでの問題は、objectGuid が GUID として SQL に返されず、バイナリ 0x102938102938 またはゴミとして返されることです。さて、Guid を 16 進数に変換してから 2 進数に変換し、それを使用して AD にクエリを実行しようと考えましたが、どこから始めればよいかさえわかりません。

したがって、ここでの究極の質問は次のとおりだと思います。GUID が存在しない場合にエラーをスローすることなく、GUID によってユーザーの Active Directory を照会するにはどうすればよいですか? このようにして、それをSQLクエリに結合できますか? これは、.net DirectoryServices ヘルパーを使用するコードではなく、T-SQL で実現できる必要があります。

これが散らかっているように見える場合は申し訳ありませんが、私たちが扱ってきたことをここに掲載したかっただけです. 別のルートを取るための提案を含め、任意の入力を歓迎します。ティア