|
1.目次
2.目的
3.参考書
4.サンプルデータベース
5.SQL Server 2000のサンプルデータベース Northwind, Pubs
|
|
SQL Server 2005では、サンプルデータベースも一新されています。
サンプルデータベースがあると、いろいろ確認する時に便利です。
|
|
(1)
AdventureWorks サンプルデータベースのダウンロード
(2)
SQL Server 2005 Express Edition ドキュメントとサンプル
(3)
Northwind and pubs Sample Databases for SQL Server 2000
|
|
SQL2000では、Northwind, Pubsのサンプルデータベースがありましたが、SQL
2005ではAdventureWorksがサンプルデータベースとして提供されています。しかし、SQL2005を標準でインストールしただけでは、AdventureWorksはインストールされません。
用途 |
説明 |
サンプルデータベース
%Program Files%\Microsoft SQL Server\90\Samples |
SqlServerSamples.msi
- Analysis Services
- Engine
- Integrated Samples
- Integrated Services
- Notification Services
- Replication
- Reporting Services
|
AdventureWorksDB
OLTP database用
%Program Files%\Microsoft SQL
Server\MSSQL.1\MSSQL\Data\ |
case-sensitive
AdventureWorksDB.msi |
case-insensitive
AdventureWorksDBCI.msi |
AdventureWorksBI
Analysis Services database and data warehouse 用
%Program Files%\Microsoft SQL
Server\MSSQL.1\MSSQL\Data\ |
AdventureWorksBI.msi
(case-sensitive ) |
AdventureWorksBICI.ms
(case-insensitive ) |
インストールの方法
- インストーラで追加インストールする。インストールの方法は、Books Online のAdventure
Works→インストールを参照。
- 参考書(1)よりAdventureWorksをダウンロードできます。
- インストールすると[スタート]→[Microsoft SQL Server
2005]→[Documentation and Tutorials]→[Samples Directory]
にディレクトリができる。
すでにインストールされている場合の再設定方法
- スクリプトの再実行。
インストールスクリプトは、次の場所にあります。
%ProgramFiles%Microsoft SQL
Server\90\Tools\Samples\AdventureWorks OLTP\instawdb.sql
C:\Program Files\Microsoft SQL Server\90\Samples\
|
|
SQL Server 2000のサンプルデータベース Northwind,
Pubsは、何かとあったほうが便利なので、入手方法とSQL Server 2005に入れる場合の注意です。
ダウンロードは参考文献(3)からどおぞ。
SQL2000SampleDb.msi をダウンロードして、実行すると [スタート]→[Microsoft SQL Server
2000 Sample Data Scripts]を開く。
NORTHWND.MDF, PUBS.MDF をMicrosoft SQL Server Management Studio
からアタッチする。
|
T−SQLとSQL.CLRの使い分け
|
注意 |
Northwind のEmployee データベースでは、FK_Orders_Employees
との参照制約があり、Employeeだけ削除することができません。このため、従業員を削除しようとすると、次のエラーが発生します。
'/GridView' アプリケーションでサーバー エラーが発生しました。
DELETE statement conflicted with REFERENCE
constraint 'FK_Orders_Employees'. The conflict occurred in
database 'Northwind', table 'Orders', column 'EmployeeID'.
The statement has been terminated. |
注意 |
Northwind のデータベースのデータ型で、ntext, image
という古いデータ型を使用しています。そのままだと、次のようなエラーが出ます。
- Data types ntext and nvarchar are
incompatible in equal to operator.
- Data types image and varbinary are incompatible
in equal to operator.
この場合、Northwind のデータ型をntext→nvarchar,
image→varbinary(MAX)に修正してあげる必要があります。
Visual Studio の Server Explorer から Emploeyeesテーブルで
Open Table Definition でテーブルの定義を開き、Photo, Notes
のデータ型を次のように変更します。
この場合、もう一度、上記のAdvanced SQL Generation Options
で再生成してあげる必要があります。
|
|
新しく追加された機能(T-SQL)
|
TRY-CATCH が追加された。
BEGIN TRY
RAISERROR (N'エラーレベルが10以下ではキャッチされません。',
10, -- Severity,
1);
RAISERROR (N'This is message %s %d.', -- Message text.
11, -- Severity,
1, -- State,
N'number', -- First argument.
5); -- Second argument.
END TRY
BEGIN CATCH
PRINT N'エラーレベルが10を超えるエラーが発生しました'
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() AS ErrorState,
ERROR_PROCEDURE() AS ErrorProcedure,
ERROR_LINE() AS ErrorLine,
ERROR_MESSAGE() AS ErrorMessage
END CATCH ただし、次の場合にはエラーがキャッチされないので注意が必要です。
-
重大度が 10 以下の警告または情報メッセージ。
-
重大度が 20 以上で、セッションに対する SQL Server データベース
エンジン のタスク処理を終了させるエラー。重大度が 20
以上のエラーが発生し、データベース接続が切断されない場合、TRY...CATCH によってエラーが処理されます。
-
クライアントの割り込み要求や中断されたクライアント接続などのアテンション。
-
システム管理者による KILL ステートメントを使用したセッションの終了。
CATCH ブロックのスコープ内では、次のシステム関数を使用してエラーに関する情報を取得できます。
システム関数名 |
戻り値 |
ERROR_NUMBER() |
エラーの番号 |
ERROR_SEVERITY() |
重大度 |
ERROR_STATE() |
エラー状態番号 |
ERROR_PROCEDURE() |
エラーが発生したストアド プロシージャまたはトリガの名前 |
ERROR_LINE() |
エラーを発生させたルーチン内の行番号 |
ERROR_MESSAGE() |
エラー メッセージ |
|