SSIS で Excel ファイルを読み込む際に IMEX パラメータを使用する方法

メモです。

接続マネージャーで「Excel 接続マネージャー」を作成後、Excel 接続マネージャーを選択しプロパティを表示する。

プロパティから「ConnectionString」の項目を探し、接続文字列に直接「IMEX=1」を追加する。

【例】

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:xxxyyy.xlsx;Extended Properties="EXCEL 12.0;HDR=YES";

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:xxxyyy.xlsx;Extended Properties="EXCEL 12.0;HDR=YES;IMEX=1";

]]>

[Reporting Services] レポート マネージャーに管理者としてアクセスする方法

Windows Vista や Windows Server 2008 など、UAC の構成がある環境に Reporting Services をインストールした場合、Administrators の権限のあるユーザーでレポート マネージャーにアクセスしても、権限がないとエラーが表示されることがあります。原因はもちろん UAC によるものです。

管理者権限でレポート マネージャーにアクセスするひとつの方法としては、Internet Explorer を管理者権限で実行することです。Internet Explorer の実行ファイルを右クリックして「管理者として実行」を選択すればレポート マネージャーに管理者としてアクセスできます。(管理者権限のままほかにサイトに移動するのは危険なので注意してください)

しかし、毎回管理者権限で実行するのが面倒であれば以下の設定をすることにより、管理者権限で Internet Explorer を実行しなくてもレポート マネージャーに管理者としてアクセスできます。

  1. Internet Explorer を管理者権限で実行する。
  2. レポート マネージャーのサイトにアクセスする。Reporting Services インストール環境で操作する場合、localhost ではなく、サーバー名、または IP アドレスを指定してください。
  3. 「ツール」「インターネットオプション」「セキュリティ」「信頼済みサイト」を選択して、レポート マネージャーのサイトを登録してください。(localhost だとすでにイントラネットに含まれているので追加できません)
  4. レポート マネージャーのホームから「フォルダーの設定」「セキュリティ」「新しいロールの割り当て」を選択し、アクセスするユーザー名を「<domain>/<user>」の形式で入力し、「コンテンツ マネージャー」のロールを与えて追加します。
  5. レポート マネージャーから画面右上の「サイトの設定」を選択し、「セキュリティ」「新しいロールの割り当て」を選択、ユーザーに「<domain>/<user>」を入力して「システム管理者」のロールを割り当てて追加します。
  6. Internet Explorer を閉じ、今度は管理者権限で起動せずにアクセスし、管理者としてレポート マネージャーにアクセスできるか確認してください。(場合によってはページにアクセスする際認証を求められることがあります)
]]>

SQL Server Management Studio の編集でテキストフィールドに改行をいれる方法

SQL Server Management Studio の行編集で使用されるグリッド入力ではテキストに改行を入れることはできません。そのため、下のように SQL でこつこつと更新をかける必要があります。

update [Table1]
set [テキスト] = N'テキストに
改行をいれ
ます'
where [キー] = 1;
]]>

SQL Server 2008 インストール時に「サービス´SQLBrowser´の開始要求に失敗しました。」と表示されてインストールに失敗する場合の対処法

■環境

  • Windows Server 2003 R2 Standard SP2
  • SQL Server 2008 Standard

■エラー内容

SQL Server のインストール設定を行い、インストールを開始しようとすると「サービス´SQLBrowser´の開始要求に失敗しました。」とエラーが表示されてインストールが中断される。

■原因

「MSXML 6 Service Pack 2 (KB973686)」がすでに Windows にインストールされている状態で SQL Server 2008 をインストールしようとすると、古い MSXML 6 をインストールしようとして失敗する。

■対処法

SQL Server 2008 をインストールする前にあらかじめ MSXML 6 SP2 をアンインストールしておき、SQL Server 2008 をインストールする。SQL Server インストール後、Windows Update 等で MSXML 6 SP2 をインストールする。

もし、SQL Server 2008 をインストールしようとして失敗している場合は、先に SQL Server の各コンポーネントをアンインストールしてから MSXML 6 SP2 をアンインストール。その後 SQL Server 2008 をインストールして対処する。

]]>

SSAS でメタデータ マネージャーのエラーが発生して処理や削除が行えなくなった場合の対処法

※ここに書いている手順は正式な回避方法ではないので自己責任でお願いします。

 

【環境】

  • SQL Server 2008 R2 SP1
  • Windows 7 64bit

 

【エラーの内容】

SSAS プロジェクトで処理や配置、また、Analysis Services サービスでデータベースを削除しようとしたときなど、Analysis Services サービスにかかわるほとんどの操作を行おうとしたときに以下のようなエラーメッセージが表示されて処理が中断される。

====================================================
メタデータ マネージャーでエラーが発生しました。
ID 'XXXXXX'、名前 'XXXXXX' のディメンションが
'XXXXXX' キューブによって参照されていますが、このディメンションは存在しません。
メタデータ マネージャーでエラーが発生しました。
XXXXXX cube を ファイル '\?C:Program FilesMicrosoft SQL Server
MSAS10_50.MSSQLSERVEROLAPDataXXXXXX.0.dbXXXXXXX.999.cub.xml'
から読み込み中に、エラーが発生しました。
(Microsoft.AnalysisServices)
=====================================================
※ XXXXXX は環境により異なる

【発生する原因】

不明。SSAS プロジェクトでエラーとなる不正なデータを配置すると発生する?

【回避手順】

  1. SQL Server Management Studio から Analysis Services に接続し、ツリートップにある Microsoft 分析サーバーの右クリックメニューから「停止」を選択して  Analysis Services を停止させる。
  2. エクスプローラーより「C:Program FilesMicrosoft SQL Server
    MSAS10_50.MSSQLSERVEROLAPData」フォルダを開き、エラーの発生するデータベースの以下のフォルダ・ファイルをリネームするか削除する
    ・XXXXXX.0.db フォルダ (0 は任意の数字)
    ・XXXXXX.99.db.xml ファイル (99 は任意の数字)
  3. SQL Server Management Studio から Analysis Services のツリーノードを右クリックし、「開始」をクリックする。
  4. 削除されている SSAS データベースをVisual Studio から再配置する(エラーは訂正しておくこと)。
]]>

クライアントに表示される特定のディメンションの属性を非表示にする方法 [SQL Server Analysis Services]

キューブとディメンションを作成しクライアントに公開する際、不要なディメンションの属性が公開されてしまう場合があります。特にキーとなる属性は公開しなくてもいい場合がありますが、ディメンションのキーとなるため削除するとディメンションとして成り立たなくなってしまいます。

クライアントに公開したくない場合は以下の設定で非公開にできます。(見えないだけなのでディメンション上では存在することになります)

【手順】

  1. 作成したディメンションを開く
  2. 「ディメンション構造」のタブを選択し、属性の項目から非表示にした属性を選択
  3. 属性を右クリックしメニューから「プロパティ」を選択
  4. プロパティから「詳細設定」グループの「AttributeHierarchyVisible」を「False」に設定
]]>