【SQL Server 2012】SQLでエクセル表示の実行エラーの対処法
SQLでエクセル表示を実行した時にエラーとなった場合の対処法。
実はSQLでエクセルファイルを表示するにあたり、色々なエラーに遭遇しました。ということで、対処方法を記録しておきたいと思います。
■エラーその1
SQL Server 2012をインストールしただけの状態で、ManagementStudioでSQLを実行した時に出力したエラー
SQL Server によって、コンポーネント ‘Ad Hoc Distributed Queries’ の STATEMENT ‘OpenRowset/OpenDatasource’ に対するアクセスがブロックされました。このサーバーのセキュリティ構成で、このコンポーネントが OFF に設定されているためです。システム管理者は sp_configure を使用して、’Ad Hoc Distributed Queries’ の使用を有効にできます。’Ad Hoc Distributed Queries’ を有効にする手順の詳細については、SQL Server オンライン ブックで、’Ad Hoc Distributed Queries’ を検索してください。 |
(1)色々調べた結果、まずは ↓ のSQLを実行しました。
sp_configure ‘show advanced options’, 1; GO RECONFIGURE; GO sp_configure ‘fill factor’, 100; GO RECONFIGURE; GO |
■エラーその2
上記のSQLを実行後、再度、エクセルファイル表示のSQLを実行した時のエラー
OLE DB プロバイダー “Microsoft.ACE.OLEDB.12.0” が登録されていません。 |
(2)調べてみると 【Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント】 なるものが必要らしく、ダウンロードしてサーバーへインストール。 http://www.microsoft.com/ja-jp/download/details.aspx?id=13255
■エラーその3
上記をインストールした後に出力したエラー
SQL Server によって、コンポーネント ‘Ad Hoc Distributed Queries’ の STATEMENT ‘OpenRowset/OpenDatasource’ に対するアクセスがブロックされました。このサーバーのセキュリティ構成で、このコンポーネントが OFF に設定されているためです。システム管理者は sp_configure を使用して、’Ad Hoc Distributed Queries’ の使用を有効にできます。’Ad Hoc Distributed Queries’ を有効にする手順の詳細については、SQL Server オンライン ブックで、’Ad Hoc Distributed Queries’ を検索してください。 |
(3)アドホックが有効でないといわれたので ↓ のSQLを実行
–アドホッククエリ有効化(OPENROWSETを実行可能にする) EXEC sp_configure ‘Ad Hoc Distributed Queries’, 1; RECONFIGURE; |
■エラーその4
アドホッククエリを有効にした後に出力したエラー
メッセージ 7399、レベル 16、状態 1、行 1 リンク サーバー “(null)” の OLE DB プロバイダー “Microsoft.ACE.OLEDB.12.0” により、エラーがレポートされました。アクセスが拒否されました。 メッセージ 7350、レベル 16、状態 2、行 1 リンク サーバー “(null)” の OLE DB プロバイダー “Microsoft.ACE.OLEDB.12.0” から列情報を取得できません。 |
(4)アクセス拒否とかされたので、調べて ↓ のSQLを実行
USE master EXEC sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′ , N’AllowInProcess’ , 1 EXEC sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′ , N’DynamicParameters’ , 1 |
上記、4つのエラーを乗り越えようやく、表示することができました。
Adsense
関連記事
-
-
【SQL Server 2012】SQLでエクセルをテーブルとして表示させる方法
SQL Management Studioを使用してインポート等は使用せずにSQLのみでテーブルを表
-
-
【SQL Server 2012】バッチ(コマンドプロンプト)でリストア
バッチ(コマンドプロンプト)を使って、SQL Server 2012のリストアしてみたいと思います。
-
-
【SQL Server 2012】バッチ(コマンドプロンプト)でバックアップ
バッチ(コマンドプロンプト)を使って、SQL Server 2012のバックアップを取得します。
-
-
【SQL Server】varchar型、nvarchar型の文字数とバイト(byte)数を取得する
varchar型の文字数、バイト(byte)数を取得する方法 SELECT LEN(【文字
-
-
【SQL Server】Management Studioでテーブルをデザインから変更するとエラーになる
変更の保存が許可されていません。行った変更には、次のテーブルを削除して再作成することが必要に
-
-
【SQL Server 2012】テーブル、カラム、主キー、NULL制約、データ型、長さ、INDEXの有無の一括表示
職場のシステムリプレースに伴い、データベースのテーブル(カラム)の一覧が必要になりました。 普
-
-
【SQL Server】エクセルをテーブルに取り込む方法
以前にManagement Studioを使ってSQLでエクセルを直接取り込む方法を書きましたが、今
-
-
【Management Studio】Microsoft SQL Server 2012 ExpressにManagement Studio のインストール方法。
前回、Windows Server 2012にSQL Server 2012 Expressをインス
-
-
【SQL Server】Excel VBAでSQLを実行し、レコードを更新(追加、更新、削除)する
VBAでSQL Serverのテーブルに SQL(Insert、Update、Delete)を発行
-
-
【SQL Server】アンインストール手順
手順としては、http://technet.microsoft.com/ja-jp/library/