|
SQL Server のドキュメント作成チームは、技術的な質問への回答は行っていませんが、この Readme ドキュメントに関するお客様のご意見、ご感想をお待ちしております。以下のリンクを使用して、電子メールでフィードバックを直接お送りください。フィードバックはすべて英語でお願いします。 このドキュメントに関するフィードバックを送信するには、 |
目次
1.0 はじめに
2.0 SQL Server Express のダウンロードとインストール
2.3 SQL Server Express を管理するツール
2.5 SQL Server 2005 の Readme ファイル
3.0 セットアップ時の問題
4.0 特記事項
4.2 ユーザー インスタンス機能
4.4 Books Online
4.5 SQL Server Express に関する情報を得るには
4.6 ニュースグループ サポート
4.7 SQL Server Express に関するフィードバックを送るには
5.0 データベース エンジン
6.0 レプリケーション
1.0 はじめに
Microsoft SQL Server 2005 Express Edition (SQL Server Express) は、SQL Server 2005 を使いやすくした無償のバージョンで、従来の Microsoft Desktop Engine (MSDE) に置き換わる製品です。SQL Server Express は、Microsoft Visual Studio 2005 と統合されたことにより、強力で、セキュリティで保護された、データドリブン アプリケーションの開発が容易になり、開発したアプリケーションを迅速に配置できるようになりました。SQL Server Express は使用許諾契約書の条項に基づいて再配布することができ、基本となるサーバー データベースだけでなく、クライアント データベースとしても機能させることができます。SQL Server Express は、独立系ソフトウェア ベンダ (ISV)、サーバー ユーザー、アプリケーション開発を専門としない開発者、Web アプリケーション開発者、Web サイトの管理者、趣味でクライアント アプリケーションを作成する開発者などにとって理想的な選択肢です。
SQL Server Express に関する情報のうち、この Readme ファイルに記載できなかった最新の情報は、マイクロソフト サポート技術情報の記事
SQL Server Express ニュースグループを使用してフィードバックを提供する方法の詳細については、「4.6 ニュースグループ サポート」を参照してください。
2.0 SQL Server Express のダウンロードとインストール
ここでは、.NET Framework 2.0、SQL Server Express、および SQL Server Express への接続に使用できるツールについて、インストールに関する情報を提供します。
2.1 .NET Framework 2.0
SQL Server Express をインストールする前に、.NET Framework 2.0 をインストールしておく必要があります。
SQL Server Express は、.NET Framework のバージョン 2.0 という特定のバージョンに依存します。このバージョン以外を使用している場合は、SQL Server Express が予測できない動作をする場合があります。.NET Framework 2.0 は、
| 注 : |
|---|
| .NET Framework 2.0 は、Microsoft Visual Studio 2005 および SQL Server 2005 のすべてのエディションで自動的にインストールされます。 |
2.2 SQL Server Express
SQL Server Express は、
| 注 : |
|---|
| 製品をダウンロードして展開する場合は、ダウンロード サイトで示される指示に従ってください。 |
SQL Server Express をインストールした後、コマンド プロンプトで次のコマンドを使用して SQL Server Express にログインします。
sqlcmd -S Server\Instance
Server はコンピュータ名で、Instance は接続するインスタンスの名前です。セットアップ中に既定の名前付きインスタンスを使用している場合は、インスタンスに「SQLExpress」と指定します。
2.3 SQL Server Express を管理するツール
2.4 セットアップ ドキュメントへのアクセス
ハードウェア要件とソフトウェア要件については、「
2.5 SQL Server 2005 の Readme ファイル
SQL Server 2005 の Readme ファイルは、
| 注 : |
|---|
|
SQL Server Express 2005 および SQL Server Expressに関する情報のうち、この Readme ファイルに記載できなかった最新の情報は、マイクロソフト サポート技術情報の記事 |
3.0 セットアップの問題点
ここでは、今回のリリースで発生するセットアップの問題点について説明します。
3.1 SQL ネイティブ クライアントが既にインストールされているとセットアップが失敗する
"製品 Microsoft SQL Native Client のインストール パッケージが見つかりませんでした。有効なコピーのインストール パッケージ 'sqlncli.msi' を使ってもう一度インストールしてください。" というエラー メッセージでセットアップが失敗し、ロールバックされることがあります。この問題を回避するには、[プログラムの追加と削除] を使用して SQL ネイティブ クライアントをアンインストールしてください。クラスタの場合は、クラスタ内のすべてのノードから SQL ネイティブ クライアントをアンインストールします。その後、SQL Server のセットアップを再び実行します。
3.2 "パフォーマンス モニタのカウンタ レジストリ値に対するシステム構成チェックに失敗しました" というメッセージが表示され、システム構成チェッカーが失敗する
SQL Server のインストール開始前に、システム構成チェッカー (SCC) により、パフォーマンス モニタ カウンタ レジストリ キーの値が確認されます。SCC で既存のレジストリ キーを確認できない場合、または SCC で Lodctr.exe システム プログラムを実行できない場合は、SCC チェックが失敗し、セットアップが中止されます。セットアップを完了するには、レジストリ キーの値を手動で増やす必要があります。
| 注意 : |
|---|
|
レジストリの編集を誤ると、深刻な問題が発生し、オペレーティング システムの再インストールが必要になる場合があります。マイクロソフトは、レジストリの誤った編集により発生した問題に関しては、一切責任を負わないものとします。レジストリを編集する前に、重要なデータをバックアップしてください。レジストリのバックアップ、復元、および編集の方法については、マイクロソフト サポート技術情報の記事 |
-
タスク バーの [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、[名前] ボックスに「regedit.exe」と入力し、[OK] をクリックします。
-
レジストリ キー [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] に移動します。以下のキーを探します。
-
"Last Counter"=dword:00000ed4 (5276)
-
"Last Help"=dword:00000ed5 (5277)
-
"Last Counter"=dword:00000ed4 (5276)
-
値を確認します。上記の手順の Last Counter 値 (5276) は、レジストリ キー [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009] の Perflib\009 にある Counter キーの最大値と一致する必要があり、上記の手順の Last Help 値 (5277) は、レジストリ キー [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009] の Perflib\009 にある Help キーの最大値と一致する必要があります。
注 : 「009」は、英語 (U.S.) 版に対して使用されるキーです。 -
必要に応じて、\Perflib キーの Last Counter 値と Last Help 値を変更します。右ペインで、[Last Counter] または [Last Help] を右クリックし、[修正] をクリックします。次に、[表記] の下の [10 進] をクリックし、[値のデータ] フィールドで値を設定して、[OK] をクリックします。必要に応じて、他のキーでも同じ処理を繰り返し、レジストリ エディタを閉じます。
-
SQL Server 2005 Express Edition セットアップをもう一度実行します。
3.3 SQL Server Express Books Online に、オペレーティング システムのサポートに関して誤った情報が記載されている
SQL Server Express Books Online のトピック「ハードウェアとソフトウェアの要件 (SQL Server Express)」には、正確なオペレーティング システムのリストが記載されていません。SQL Server Express でサポートされているオペレーティング システムは次のとおりです。
-
Windows Server 2003 SP1
-
Windows Server 2003 Enterprise Edition SP1
-
Windows Server 2003 Datacenter Edition SP1
-
Windows Small Business Server 2003 Standard Edition SP1
-
Windows Small Business Server 2003 Premium Edition SP1
-
Windows XP Professional SP2
-
Windows XP Home Edition SP2
-
Windows XP Tablet Edition SP2
-
Windows XP Media Edition SP2
-
Windows 2000 Professional Edition SP4
-
Windows 2000 Server Edition SP4
-
Windows 2000 Advanced Edition SP4
-
Windows 2000 Datacenter Server Edition SP4
3.4 Windows Server 2003 で暗号化サービスが無効になっている場合に、[Windows Logo Requirement] ダイアログでセットアップが失敗する
Windows 暗号化サービス プロバイダ (CSP) は、認証、エンコード、暗号化のサービスを実行するコードであり、Windows ベースのアプリケーションは、Windows Server 2003 の CryptoAPI によってこのコードにアクセスします。CSP サービスが停止している場合や無効になっている場合は、SQL Server のセットアップが失敗し、[Windows Logo Requirement] メッセージが表示されます。
| 注 : |
|---|
| Windows Server 2003 フェールオーバー クラスタで SQL Server のセットアップを実行する前に、すべてのクラスタ ノードで CSP サービスを開始する必要があります。 |
-
コントロール パネルで [管理ツール]、[サービス] の順にダブルクリックします。
-
[名前] 列で、[Cryptographic Services] を右クリックし、[開始] をクリックします。
-
[サービス] ダイアログ ボックスを閉じます。
-
セットアップを実行します。
3.5 Windows で MSDTC が一部無効になっている
Microsoft 分散トランザクション コーディネータ (MS DTC) は、Windows で構成されていない部分があるので、アプリケーションを使用して分散トランザクションに SQL Server Express のリソースを追加できない場合があります。分散トランザクションを使用するリンク サーバー、分散クエリ、およびリモート ストアド プロシージャが、この問題の影響を受ける場合があります。このような問題を回避するには、SQL Server Express がインストールされているサーバーで MS DTC を完全に有効にする必要があります。
-
コントロール パネルで [管理ツール]、[コンポーネント サービス] の順にダブルクリックします。
-
[コンソール ルート] の左ペインで、[コンポーネント サービス]、[コンピュータ] を順に展開します。
-
[マイ コンピュータ] を右クリックして [プロパティ] をクリックします。
-
[MSDTC] タブをクリックして [セキュリティの構成] をクリックします。
-
[セキュリティの設定] の下のすべてのチェック ボックスをオンにします。
-
[DTC ログオン アカウント] のアカウントが NT AUTHORITY\NetworkService に設定されていることを確認します。
3.6 サンプル データベースが既定でインストールされない
SQL Server Express では、サンプル データベースは既定でインストールされません。Northwind および pubs サンプル データベースは、
3.7 "暗号化の強制" を有効にした構成で SQL Server Express セットアップが失敗する
既存の SQL Server クライアントのインストールが "暗号化の強制" オプションを有効にして構成されている場合、セットアップが失敗することがあります。この問題を回避するには、このオプションを SQL Server クライアントで無効にしてください。SQL Server 2000 の Microsoft Data Access Components (MDAC) クライアントの場合は、SQL Server 2000 クライアント ネットワーク ユーティリティを使用します。SQL ネイティブ クライアントの場合は、[プログラムの追加と削除] を使用して SQL ネイティブ クライアントをアンインストールします。クラスタの場合は、クラスタ内のすべてのノードから SQL ネイティブ クライアントをアンインストールします。その後、SQL Server 2005 のセットアップを再び実行します。
3.8 sp_configure の設定により、システム データベースのアップグレード中にセットアップが失敗する
SAVESYSDB を使用して SQL Server Express の以前の Community Technology Preview (CTP) リリースをアンインストールした後、USESYSDB を使用してこのリリースをインストールする場合、以前のインスタンスで sp_configure のオプション SMO and DMO XPs が無効になっていると、コマンド プロンプトからのセットアップが失敗することがあります。この問題を解決するには、セットアップを使用してシステム データベースをアップグレードする前に、これらのオプションを有効にしてください。詳細については、
3.9 SQL Server 2000 の既定のインスタンスをインストールすると SQL Server Express が無効になる
お使いのコンピュータに SQL Server 2000 管理ツールと SQL Server Express の既定のインスタンスがインストールされている場合、SQL Server セットアップでは SQL Server 2000 の既定のインスタンスをインストールすることが可能です。しかし、これを行うと、インストールされている SQL Server Express のインスタンスが無効になります。そのため、コンピュータ上に SQL Server 2000 管理ツールと SQL Server Express の既定のインスタンスが既に存在している場合、SQL Server 2000 の既定のインスタンスはインストールしないでください。
3.10 Windows ドメイン コントローラへの SQL Server Express のインストール
| セキュリティ上の注意 : |
|---|
| SQL Server Express をドメイン コントローラで実行することは推奨されません。 |
SQL Server Express を Windows ドメイン コントローラにインストールすることは可能ですが、Windows Server 2003 のドメイン コントローラでローカル サービスまたはネットワーク サービスとして実行することはできません。SQL Server のサービス アカウントは、Windows のドメイン ユーザー アカウントとして実行する必要があります。また、SQL Server のサービス アカウントをインストールし、ローカル システムとして実行することは可能ですが、この方法は推奨されません。
SQL Server Express をインストールした後は、サーバーのロールを変更しないでください。たとえば、SQL Server Express をメンバ サーバーにインストールした後、Dcpromo ツールを使用してサーバーをドメイン コントローラに昇格したり、SQL Server Express をドメイン コントローラにインストールした後、Dcpromo を使用してサーバーをメンバ サーバーに降格しないでください。SQL Server Express をインストールした後にサーバーのロールを変更すると十分に機能しなくなる可能性があり、このような使用はサポートされていません。
3.11 SQL ネイティブ クライアントが既にインストールされているとセットアップが失敗する
"製品 Microsoft SQL Native Client のインストール パッケージが見つかりませんでした。有効なコピーのインストール パッケージ 'sqlncli.msi' を使ってもう一度インストールしてください。" というエラー メッセージでセットアップが失敗し、ロールバックされることがあります。この問題を回避するには、[プログラムの追加と削除] を使用して SQL ネイティブ クライアントをアンインストールしてください。クラスタの場合は、クラスタ内のすべてのノードから SQL ネイティブ クライアントをアンインストールします。その後、SQL Server のセットアップを再び実行します。
3.12 SQL Server Express および Visual Studio 2005 のプレリリース バージョンのアンインストール
旧ビルドの SQL Server Express、Visual Studio 2005、および .NET Framework 2.0 は、インストールの前にすべて削除する必要があります。両方の製品が同じバージョンの .NET Framework に依存しているので、アンインストールは以下の順序で実行する必要があります。
-
SQL Server Express
-
Visual Studio 2005
-
.NET Framework 2.0
3.13 メンテナンス モードでの Setup.exe のパスの指定
新しい SQL Server 2005 コンポーネントをメンテナンス モードでインストールしようとすると、SQL Server 2005 インストール メディア上の Setup.exe の場所を指定するよう求められます。この場所を指定する際には、パスに必ず "Setup.exe" を含めてください。たとえば、パス "D:\" を指定すると失敗しますが、"D:\Setup.exe" を指定すると成功します。
3.14 セットアップのコマンド シェル スクリプトでエラーが起こった場合のトラブルシューティング
セットアップのコマンド シェル スクリプトでは、パス変数にかっこが含まれていると、Windows スクリプト エラーが発生する可能性があります。これは、コマンド シェル スクリプトではパス変数でのかっこの使用がサポートされていないためで、64 ビット コンピュータ上の Windows-on-Windows (WOW64) 32 ビット サブシステムに 32 ビット コンポーネントをインストールしようとするとこのエラーが発生します。たとえば、パス値が "C:\Program Files (x86)\" である次のスクリプトでは、シェル スクリプトのインタープリタにおいて、展開された PATH 変数内のかっこが IF/ELSE ステートメントの一部として間違って解釈されるため、エラーが発生します。
IF "%SOME_PATH%" == "" (
SET PATH=%PATH%;%PATH_A%
) ELSE (
SET PATH=%PATH%;%PATH_B%
)
この問題を回避するには、スクリプトを変更し、かっこを削除します。たとえば、次のようになります。
IF "%SOME_PATH%" == "" set PATH=%PATH%;%PATH_A%
IF NOT "%SOME_PATH%" == "" set PATH=%PATH%;%PATH_B%
または、かっこが含まれる SQL エントリをパスから削除します。
4.0 特記事項
4.1 サービス アカウントとネットワーク プロトコル
SQL Server Express では、ローカル システム アカウントはネットワーク サービス アカウントになります。
SQL Server Express は、ローカルの名前付きパイプおよび共有メモリをリッスンします。既定のインストールでは、SQL Server Express にリモートで接続することはできません。TCP/IP を有効にしていて、ファイアウォールが有効化されていることを確認する必要があります。
TCP/IP を有効化する方法
-
[スタート] ボタンをクリックし、[すべてのプログラム] をポイントします。[Microsoft SQL Server 2005] をポイントし、次に [構成ツール] をポイントし、[SQL Server 構成マネージャ] をクリックします。
必要な場合には、[マイ コンピュータ] を右クリックして [管理] をクリックすることで、[コンピュータの管理] ウィンドウを開くことができます。[コンピュータの管理] ウィンドウで、[サービスとアプリケーション] を展開し、[SQL Server 構成マネージャ] を展開します。
-
[SQL Server 2005 ネットワークの構成] を展開し、次に [<InstanceName> の プロトコル] をクリックします。
-
プロトコルのリストで、有効化するプロトコルを右クリックし、次に [有効化] をクリックします。
プロトコルのアイコンが変わり、プロトコルが有効化されたことが示されます。
ファイアウォールを有効化する方法
- [スタート] ボタンをクリックし、[コントロール パネル] をポイントします。次に、[ネットワーク接続] をクリックします。
- 左側のナビゲーション バーで [Windows ファイアウォールの設定を変更する] をクリックします。
-
[例外] タブの [プログラムおよびサービス] ボックスに SQL Server がリストされていますが、例外に選択されてはいません。チェック ボックスをオンにすると、Windows は 1433 ポートを開き、TCP 要求を受け入れるようになります。または、SQL Server がリストされていない場合には、以下を実行します。
-
[プログラムの追加] をクリックします。
-
[参照] をクリックします。
-
drive:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BINN に移動します。
-
ファイル sqlservr.exe を例外のリストに追加します。
-
[プログラムの追加] をクリックします。
4.2 ユーザー インスタンス機能
SQL Server Express では、管理者以外のユーザーが DBCreator 特権を必要とせずに、Xcopy による配置を使用してデータベースをコピーまたは移動できます。詳細については、
4.3 WMI プロバイダおよびユーザー インスタンス機能
サーバー イベントの WMI プロバイダは、動的に起動されるユーザー インスタンスではサポートされません。これは、親の SQL Server Express インスタンスで機能している必要があります。
4.4 Books Online
SQL Server Express Books Online は、
| 注 : |
|---|
| SQL Server Express は SQL Server 2005 の機能限定バージョンであるため、SQL Server Express Books Online は SQL Server 2005 Books Online に含まれるコンテンツに大きく依存しています。 |
SQL Server 2005 Books Online は、
マイクロソフトでは、SQL Server Express Books Online および SQL Server 2005 Books Online のダウンロード可能なアップデートを定期的に公開しています。これらのアップデートをインストールして、手元にあるドキュメントの情報を常に最新の状態にしておくことをお勧めします。
4.5 SQL Server Express に関する情報を得るには
マイクロソフトでは、SQL Server Express に関して主に 4 つの情報源を提供しています。
-
SQL Server Express のドキュメントおよびサンプル
-
SQL Server 2005 ドキュメント
-
Microsoft Developer Network (MSDN) およびTechNet にある SQL Server のサイト
-
マイクロソフトのその他の Web サイトにある SQL Server 情報
さらに、
4.6 ニュースグループ サポート
ニュースグループ サポートについては、
SQL Server Express チームからの最新情報については、
| 注 : |
|---|
| ニュースグループでサポートされる言語は英語のみです。 |
4.7 SQL Server Express に関するフィードバックを送るには
SQL Server Express に関するご意見やバグの報告をお送りいただくには、以下の方法があります。
-
マイクロソフトの Web サイト で、SQL Server Express の機能およびユーザー インターフェースに関する意見およびバグの報告を送信する。
-
SQL Server Express Books Online のフィードバック機能を使用して、ドキュメントに関する意見および記載ミスの報告を送信する。
-
マイクロソフトでの分析用に、エラー報告および機能の使用データを自動送信するよう選択する。
詳細については、SQL Server Books Online の「SQL Server 2005 に関するフィードバックの送信」を参照してください。
5.0 データベース エンジン
ここでは、SQL Server 2005 データベース エンジンおよび SQL Server Express にも該当するデータベース エンジン固有のコマンド プロンプト ユーティリティに関する最新の項目について説明します。
5.1 Windows Server 2003 SP1 で実行する場合に接続が強制的に切断される
TCP/IP ネットワーキングを使用している場合、Windows Server 2003 Service Pack 1 で実行されている SQL Server Express データベース エンジンのインスタンスに対するクライアント接続は、"ProviderNum: 7, エラー: 10054, エラー メッセージ: "TCP プロバイダ: 既存の接続はリモート ホストに強制的に切断されました。" というエラーで失敗することがあります。
これは、多数のクライアント接続を試行してスケーラビリティのテストを行うときに生じる場合があります。この問題を解決するには、regedit.exe ユーティリティを使用して、レジストリ キー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ に SynAttackProtect という名前の新しい DWORD 値を追加し、値のデータを 00000000 に設定します。
| セキュリティ上の注意 : |
|---|
| このレジストリ キーを設定すると、サーバーが SYN フラッド サービス拒否攻撃を受けやすくなります。テストが完了したら、このレジストリの値を削除してください。 |
| 注意 : |
|---|
|
レジストリの編集を誤ると、深刻な問題が発生し、オペレーティング システムの再インストールが必要になる場合があります。マイクロソフトは、レジストリの誤った編集により発生した問題に関しては、一切責任を負わないものとします。レジストリを編集する前に、重要なデータをバックアップしてください。レジストリのバックアップ、復元、および編集の方法については、マイクロソフト サポート技術情報の記事 |
5.2 セキュリティで保護されたダイアログにはデータベースのマスタ キーが必要
SQL Server 2005 Books Online には、ダイアログ セキュリティを使用したメッセージ交換が複数のデータベースにわたって行われる場合に、データベースのマスタ キーで暗号化されたセッション キーが SQL Server によって作成されるという記述がありますが、この情報は正しくありません。実際には、ダイアログ セキュリティを使用するすべてのメッセージ交換について、セッション キーがデータベースのマスタ キーで暗号化されます。データベースのマスタ キーが使用できない場合、メッセージ交換のメッセージはデータベースのマスタ キーが作成されるか、対話がタイムアウトするまで、エラーと共に transmission_queue 内に残されます。ENCRYPTION = OFF パラメータを使用して非暗号化ダイアログを作成するか、次のコマンドを使用してデータベースのマスタ キーを作成してください。
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>' | |
5.3 共通言語ランタイムのユーザー定義型では、シリアル化された表現が 1 つでなければならない
バイト順序が指定されているユーザー定義型 (UDT) オブジェクトの各インスタンスでは、シリアル化された表現を 1 つのみ保持できます。シリアル化またはシリアル化解除ルーチンが特定のオブジェクトについて複数の表現を認識すると、以下の場合にエラーが発生することがあります。
-
RPC により渡されたバイト順序が指定されている UDT を検証する際、UDT 検証では UDT のシリアル化解除と再シリアル化が実行されます。このとき、結果のバイト列は元のものとまったく同じでなければなりません。検証が失敗すると、"System.Data.SqlClient.SqlException, 着信 TDS RPC プロトコル ストリームが不適切です。パラメータ 1 ("<ParameterName>"): 指定した値はデータ型 <TypeName> の有効なインスタンスではありません。ソース データに無効な値があるかどうかを確認してください。" というエラーが表示されます。
-
DBCC によるチェック時には、バイト順序が指定されている UDT 列に格納されているバイト数が、UDT 値の計算されたシリアル化表現と一致する必要があります。一致しない場合、DBCC CHECKTABLE ルーチンによって一貫性エラーが報告されます。
5.4 セットアップ時にネットワーク接続が有効にならない
セキュリティ強化のため、SQL Server Express では、新規インストールの場合にネットワーク接続が無効になります。SQL Server Enterprise、Standard、Workgroup Edition を使用する場合、または SQL Server の以前のインストールが存在する場合は、TCP/IP を使用したネットワーク接続が無効になることはありません。名前付きパイプによる接続は、ローカル接続にのみ使用できます。ただし、SQL Server の以前のインストールが存在しない場合に限ります。すべてのインストールに関して、サーバーへのローカル接続を可能にする共有メモリ プロトコルが有効になります。インストールの条件やオプションによっては、SQL Browser サービスが停止することもあります。
5.5 ユーザー定義型を含むアセンブリに関する注意点
ユーザー定義型を含む共通言語ランタイム (CLR) アセンブリには、以下の制限があります。
共通言語ランタイムのユーザー定義型では、シリアル化された表現が 1 つでなければならない
バイト順序が指定されているユーザー定義型オブジェクトの各インスタンスでは、シリアル化された表現を 1 つのみ保持できます。シリアル化またはシリアル化解除ルーチンが特定のオブジェクトについて複数の表現を認識すると、以下の場合にエラーが発生することがあります。
-
RPC により渡されたバイト順序が指定されているユーザー定義型を検証する際、ユーザー定義型検証ではユーザー定義型のシリアル化解除と再シリアル化が実行されます。このとき、結果のバイト列は元のものとまったく同じでなければなりません。検証が失敗すると、"System.Data.SqlClient.SqlException, 着信 TDS RPC プロトコル ストリームが不適切です。パラメータ 1 ("<ParameterName>"): 指定した値はデータ型 <TypeName> の有効なインスタンスではありません。ソース データに無効な値があるかどうかを確認してください。" というエラーが表示されます。
-
DBCC CHECKTABLE によるチェック時には、バイト順序が指定されているユーザー定義型列に格納されているバイト数が、UDT 値の計算されたシリアル化表現と一致する必要があります。一致しない場合、DBCC CHECKTABLE ルーチンによって一貫性エラーが報告されます。
ユーザー定義型クラスを含むアセンブリの更新に関する制限 (改訂版)
ALTER ASSEMBLY は、CLR ユーザー定義型を以下の方法で更新するときに使用できます。
-
ユーザー定義型クラスのパブリック メソッドを修正する。ただし、署名または属性が変更されないことが条件です。
-
新しいパブリック メソッドを追加する。
-
任意の方法でプライベート メソッドを変更する。
データ メンバや基本クラスなど、ネイティブ シリアル化されたユーザー定義型内に含まれるフィールドは、ALTER ASSEMBLY を使用して変更できません。その他すべての変更はサポートされていません。
5.6 アセンブリの更新時、SQL Server ではデータの一貫性が保証されない
新しいアセンブリ バージョンによってテーブル、インデックス、またはその他の永続的なサイトにある既存のデータが影響を受ける場合に、WITH UNCHECKED DATA を指定しないと、SQL Server では ALTER ASSEMBLY の実行が阻止されます。しかし、共通言語ランタイム (CLR) アセンブリが更新される場合、SQL Server では計算列、インデックス、インデックス付きビュー、または式と、基になるルーチンおよび型との整合性は保証されません。ALTER ASSEMBLY を実行する場合は、式の結果と、アセンブリ内のその式に基づく値に不整合が生じることがないよう注意してください。
5.7 ボリューム シャドウ コピー サービスの自動回復シャドウ コピー機能に関する注意点
ボリューム シャドウ コピー サービス (VSS) の自動回復シャドウ コピー機能には、次の制限があります。
保存される自動回復シャドウ コピーの複数作成
Windows Server 2003 Service Pack 1 (SP1) 以降のバージョンでは、保存される自動回復シャドウ コピーは 1 つだけ作成できます。シャドウ コピーを追加作成するには、先にサポート技術情報の記事
| 注 : |
|---|
| この更新を行わない場合、保存される自動回復シャドウ コピーを新しく作成するには、作成済みのシャドウ コピーを先に削除する必要があります。 |
自動回復シャドウ コピーとフルテキスト カタログ
自動回復シャドウ コピー機能では、フルテキスト カタログはサポートされません。自動回復シャドウ コピーが作成されると、シャドウ コピーのデータベースにあるフルテキスト カタログはオフラインになります。シャドウ コピーにデータベースをアタッチしても、フルテキスト カタログはオフラインのままです。それ以外のデータは、アタッチしたデータベースで通常どおり使用できます。
フルテキスト カタログを含むデータベースを、自動回復シャドウ コピーから直接アタッチしようとすると、アタッチ操作で次のエラー メッセージが返されます。
Server: Msg 7608, Level 17, State 1, Line 1 An unknown full-text failure (0xc000000d) occurred during "Mounting a full-text catalog". | |
シャドウ コピーから直接データベースをアタッチする必要がない場合は、データベース ファイルとフルテキスト カタログを、シャドウ コピーからドライブ文字で表される通常のボリュームにコピーして、その場所からデータベースをアタッチすることにより、この問題を回避できます。アタッチ コマンドでコピー後のフルテキスト ファイルの場所を正しく指定すれば、フルテキスト カタログは通常通り動作します。
5.8 共通言語ランタイム アセンブリの登録に関する制限
SQL Server では、同じ名前、カルチャ、および公開キーのアセンブリを別のバージョンとして登録することはできません。9 月版 CTP リリースよりも前のバージョンの SQL Server Express で作成されたデータベースを保持する場合は、このリリースをインストールする前に、複数登録されているアセンブリのインスタンスを 1 つだけ残して削除してください。
5.9 EXTERNAL_ACCESS および UNSAFE アセンブリの作成
SQL Server で EXTERNAL_ACCESS または UNSAFE アセンブリを作成するか、アセンブリを読み込む場合は、次の 2 つのうちいずれかの条件を満たしている必要があります。
-
アセンブリに、厳密な名前による署名または証明書による Authenticode 署名が付けられている。この厳密な名前 (または証明書) は、SQL Server 内で非対称キー (または証明書) として作成されるもので、対応するログオンには、外部アクセス アセンブリの EXTERNAL ACCESS ASSEMBLY 権限または安全ではないアセンブリの UNSAFE ASSEMBLY 権限が必要です。
-
データベース所有者 (DBO) に、外部アクセス アセンブリの EXTERNAL ACCESS ASSEMBLY または安全ではないアセンブリの UNSAFE ASSEMBLY 権限があり、データベースの TRUSTWORTHY データベース プロパティが ON に設定されている。
サーバー プロセスで共通言語ランタイム (CLR) コードを実行する場合のみ、データベースの TRUSTWORTHY プロパティを ON に設定しないことをお勧めします。代わりに、master データベースのアセンブリ ファイルから非対称キーを作成し、この非対称キーにマップされるログオンを作成して、そのログオンに EXTERNAL ACCESS ASSEMBLY または UNSAFE ASSEMBLY 権限を許可します。
次の Transact-SQL ステートメントでは、非対称キーを作成した後でこのキーにログオンをマップし、そのログオンに EXTERNAL_ACCESS ASSEMBLY 権限を許可するための手順が実行されます。次の Transact-SQL ステートメントは、CREATE ASSEMBLY ステートメントより前に実行する必要があります。
USE master GO CREATE ASYMMETRIC KEY HelloWorldKey FROM EXECUTABLE FILE = 'C:\HelloWorld.dll' CREATE LOGIN HelloWorldLogin FROM ASYMMETRIC KEY HelloWorldKey GRANT EXTERNAL ACCESS ASSEMBLY TO HelloWorldLogin GO | |
5.10 メタデータ表示の制限および動的管理ビューに対するアプリケーション ロールの互換性
SQL Server Express の既定では、master データベースのメタデータを表示できるのはアプリケーション ロールだけです。したがって、アプリケーション ロールで実行するプログラムの動作が変わる場合があります。一時的な回避策として、トレース フラグ #4616 を有効にする方法があります。詳細については、サポート技術情報の記事
5.11 SUPPLEMENTAL_LOGGING データベース オプションの未実装
SQL Server の今回のリリースでは、SUPPLEMENTAL_LOGGING データベース オプションは実装されていません。このオプションは設定できますが、機能しません。
5.12 読み込みに失敗したアセンブリが sys.dm_clr_loaded_assemblies に表示される
サーバーのアドレス空間への読み込みに失敗したアセンブリは、理由に関係なく sys.dm_clr_loaded_assemblies 動的管理ビューに表示されます。
5.13 XQuery の変更点
次に示す SQL Server Express の XQuery 実装は、Books Online に記載されていません。
-
CDATA セクションによって生成される文字は、空白文字として扱われません。たとえば、
select cast(''as xml).query('<a> <![CDATA[ ]]> {"abc"}</a>')を実行すると、<a> abc</a>が返されます。
-
空の要素と属性の作成がサポートされます。
-
名前空間プレフィックス xmlns では名前空間宣言の属性が表され、XQuery の式で再宣言することはできません。この動作は XQuery の仕様上必要です。
-
ソース式 () で 'for' を使用すると、静的エラーが発生します。
-
xml データ型に query() メソッドを使用して作成された XML ドキュメントでは、CDATA セクションのキャリッジ リターンはライン フィードになります。テキスト XML 解析に合わせて、以前のキャリッジ リターンのエンティティ参照 (
) ではなくライン フィードが使用されるようになりました。
-
Transact-SQL の、local-name() および namespace-uri() を含むユーザー定義関数は、決定的です。
5.14 xsd:dateTime からの変換時、ドキュメントに記載されている制限が適用されない
次の例に示すように、xs:dateTime 値の文字列表現に日時の区切り文字 T またはタイム ゾーンが含まれていない場合でも、value() メソッドでこの値を SQL の datetime 型に変換できます。
declare @aaa xml
set @aaa = '<AAA MyDate="2005/1/1 00:00:00"/>'
select @aaa.value('(//AAA)[1]/@MyDate', 'datetime') | |
5.15 XML スキーマのサポート
次に示す SQL Server 2005 の XML スキーマ サポートは、SQL Server 2005 Books Online に記載されていません。
-
Reporting Services (RDL) の XML スキーマを、XML スキーマ コレクションに読み込むことができます。
-
xs:dateTime および xs:time 型の値に小数点以下 3 桁を超える追加値が含まれていても、エラーは返されず、これらの値は丸められます。
-
基本型に
fixed="true"が指定されており、派生型で maxInclusive が再定義されていると、XML スキーマは拒否されます。
-
minInclusive、minExclusive、maxInclusive、および maxExclusive ファセットの末尾のスペースは、xs:dateTime、xs:data、および xs:time データ型を制限する派生型では無視されます。
5.16 RC4 暗号化の使用禁止
SQL Server 2005 のデータの保護に、RC4 暗号化を使用しないでください。代わりに、AES 256 や Triple DES などのブロック暗号を使用してください。
6.0 レプリケーション
ここでは、レプリケーションに関する最新の項目について説明します。
レプリケーションは既定では無効
Microsoft SQL Server 2005 Express Edition は、すべての種類のレプリケーションでサブスクライバとして機能しますが、このエディションには既定でレプリケーションはインストールされていません。
レプリケーション コンポーネントをインストールするには、次の操作を行います。
-
[機能の選択] ページで、[データベース サービス] を展開します。
-
[レプリケーション] をクリックし、[ローカル ハード ドライブにすべてインストール] をクリックします。
接続コンポーネントと RMO (Replication Management Objects) をインストールするには、次の操作を行います。
-
[機能の選択] ページで、[クライアント コンポーネント] をクリックし、[ローカル ハード ドライブにすべてインストール] をクリックします。