[解決済み] OPENQUERYにパラメータを含む
2022-02-15 08:31:05
質問
sql openqueryの中で、次のようなパラメータを使用するにはどうすればよいですか。
SELECT * FROM OPENQUERY([NameOfLinkedSERVER], 'SELECT * FROM TABLENAME
where field1=@someParameter') T1 INNER JOIN MYSQLSERVER.DATABASE.DBO.TABLENAME
T2 ON T1.PK = T2.PK
解決方法は?
からの OPENQUERY のドキュメントには、次のように書かれています。
OPENQUERY は変数を受け付けません。 を引数にとります。
こちらをご覧ください 記事 を使用することで、回避することができます。
UPDATEしてください。
提案されたように、以下に記事からの推奨事項を記載します。
基本的な値を渡す
基本的なTransact-SQL文はわかっているが、1つ以上の特定の値を渡す必要がある場合、次のサンプルのようなコードを使用します。
DECLARE @TSQL varchar(8000), @VAR char(2)
SELECT @VAR = 'CA'
SELECT @TSQL = 'SELECT * FROM OPENQUERY(MyLinkedServer,''SELECT * FROM pubs.dbo.authors WHERE state = ''''' + @VAR + ''''''')'
EXEC (@TSQL)
クエリ全体を渡す
Transact-SQLクエリ全体またはリンク先サーバー名(あるいはその両方)を渡す必要がある場合は、次のサンプルのようなコードを使用します。
DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000), @LinkedServer nvarchar(4000)
SET @LinkedServer = 'MyLinkedServer'
SET @OPENQUERY = 'SELECT * FROM OPENQUERY('+ @LinkedServer + ','''
SET @TSQL = 'SELECT au_lname, au_id FROM pubs..authors'')'
EXEC (@OPENQUERY+@TSQL)
Sp_executesql ストアドプロシージャを使用する
多層引用符を避けるには、次のサンプルのようなコードを使用してください。
DECLARE @VAR char(2)
SELECT @VAR = 'CA'
EXEC MyLinkedServer.master.dbo.sp_executesql
N'SELECT * FROM pubs.dbo.authors WHERE state = @state',
N'@state char(2)',
@VAR
関連
-
[解決済み] アンピボットの主キーを含む対象コードページで、テキストが切り捨てられたか、1つ以上の文字が一致しない。
-
[解決済み] WHERE x IN (5) vs WHERE x = 5 ...なぜINを使うのか?
-
[解決済み] JVM起動時のパラメータ「-Xms」「-Xmx」とは何ですか?
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] Bash関数にパラメータを渡す
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] SQL Serverでストアドプロシージャ内のテキストを検索する
-
[解決済み] 最初の行への結合方法
-
[解決済み] LINQ to SQLの内部結合の構文とは何ですか?
-
[解決済み】結合を使用したSQL更新クエリ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テーブルのFROM句の項目がない [終了しました] 。
-
[解決済み】集約関数のないTSQLピボット
-
[解決済み】SQL Server サブクエリが1つ以上の値を返しました。サブクエリが =, !=, <, <= , >, >= に続く場合、これは許可されません。
-
[解決済み】INTERSECTとINNER JOINは根本的に違うのか?[重複している]
-
[解決済み] mongoの外部キー?
-
[解決済み] ORA-01779: キーが保存されていないテーブルにマップされる列を変更できません。
-
[解決済み] リンクされたサーバーの NULL に対して OLE DB プロバイダー Microsoft.Jet.OLEDB.4.0 のインスタンスを作成できません。
-
[解決済み] Presto の JSON_EXTRACT で ' ' 文字を含むキーに問題がある。
-
[解決済み] PostgreSQL - json 型の等値演算子を識別できませんでした。
-
[解決済み] CLOBとNCLOBの違いは何ですか?