SQL Tips

 

[SQL Server] OLE DB プロバイダー "MSDASQL" では、オブジェクトに列がないか、現在のユーザーがそのオブジェクトに対する権限を持っていないことが示されています。

SQL SERVER→MySQLのリンクサーバーで繋いでデータを取得するSQLを実行した時に以下のようなエラーの対応方法について説明します。

例えば、このようなSQLを実行した時にエラーが発生します。

SELECT *
FROM OPENQUERY(LinkedServereMySQL,'
SELECT UserID
FROM TempData
WHERE Sn = 1)

OPENQUERYでデータを取得していますが、今まで問題なかったSQLがODBCドライブを変更したら以下のエラーが発生しました。

メッセージ 7357、レベル 16、状態 2、行 1
オブジェクト "
SELECT UserID
FROM TempData
WHERE Sn = 1" を処理できません。リンク サーバー "LinkedServereMySQL" の OLE DB プロバイダー "MSDASQL" では、オブジェクトに列がないか、現在のユーザーがそのオブジェクトに対する権限を持っていないことが示されています。

対応方法は以下の通り修正すると解決できます。

SELECT * FROM OPENQUERY(LinkedServereMySQL,'SELECT UserID
FROM TempData
WHERE Sn = 1

もしくは

SELECT * FROM OPENQUERY(LinkedServereMySQL,'SELECT UserID FROM TempData WHERE Sn = 1)

「SELECT * FROM OPENQUERY(LinkedServereMySQL,'」の後に改行するとエラーになります。

このエントリーをはてなブックマークに追加
2017-12-08 15:19:52   37

コメント

[SQL Server] 暗号化、復号化 / ENCRYPTBYPASSPHRASE / DECRYPTBYPASSPHRASE

-.日付:2014-02-28   カテゴリ : -   閲覧数:4969

[SQL Server] SSDT for Visual Studio 2017 offline(オフライン)installer

-.日付:2017-12-26   カテゴリ : -   閲覧数:23

[SQL Server] リンクサーバーのリストを取得する方法 - sp_linkedservers

-.日付:2017-01-16   カテゴリ : -   閲覧数:257

[SQL Server] ガチャ(GACHA)システムを作ろう!

-.日付:2016-08-18   カテゴリ : -   閲覧数:294

Copyright © 2015 INNOYA.COM All rights reserved. RSS