列のデータ生成の詳細の指定
Visual Studio Team System Database Edition のデータを生成するには、データ生成計画を作成して実行する必要があります。 データ生成計画には、データの設定対象のテーブルと列の情報が含まれています。 計画を作成した後、列に設定するデータの種類の詳細を指定できます。 詳細については、「データ ジェネレータを使用してデータベースのテスト データを生成する」および「方法 : データ生成計画を作成する」を参照してください。
データ生成計画の構成要素
次の図に、データ生成計画ウィンドウを示します。このウィンドウには、列の詳細ペインと [データ生成プレビュー] ウィンドウがあります。
データ生成計画ウィンドウ
一般的なタスク
次の表に、このシナリオをサポートする一般的なタスクの説明と、それらのタスクを正常に完了する方法の詳細へのリンクを示します。
一般的なタスク |
関連する参照先 |
---|---|
実習を行う : 入門チュートリアルに従って作業すると、簡単なデータベース生成計画を作成して実行する方法を習得できます。 |
|
列の詳細を表示する : データ生成計画に含めた各テーブルについて、テーブルの列の現在の詳細を表示できます。 データ生成時に含める列を指定できます。 |
列の詳細の表示 |
各列のデータ ジェネレータを指定する : 各列には、関連付けられたデータ ジェネレータが必要です。 指定できるのは、列の SQL データ型としてサポートされているデータ ジェネレータのみです。 |
列のデータ ジェネレータの指定 |
指定したデータ ジェネレータのプロパティを指定する : プロパティを指定することにより、各列のデータ生成の詳細を設定できます。 範囲または分布により値を制限できるほか、データ生成に必要な詳細を指定することもできます。 詳細の例としては、データ バインド ジェネレータのソース接続文字列などがあります。 |
データ ジェネレータのプロパティの指定 |
SQL データ型の既定のデータ ジェネレータを変更する : 各 SQL データ型には、関連付けられた既定のデータ ジェネレータがあります。 たとえば、Int16 型の列の場合、既定では SmallInt データ ジェネレータが使用されます。 各 SQL データ型の既定のデータ ジェネレータを表示および変更できます。 |
|
データ バインド ジェネレータを使用して Excel スプレッドシートからデータを生成する : Excel スプレッドシートの表からデータを生成するようにデータ バインド ジェネレータを設定できます。 この方法により、たとえば、参照テーブルを設定できます。 |
列の詳細の表示
データ生成計画でテーブルを強調表示すると、列の詳細ペインに、そのテーブルの列が表示されます。 このペインには、それぞれの列について、列がデータ生成に含まれるかどうか、列の SQL データ型、およびその列に割り当てられているデータ ジェネレータが示されます。 列のチェック ボックスをオンまたはオフにすることで、データ生成時にその列を含めるか除外するかを選択できます。
次の表に、各列の詳細を示します。
列名 |
詳細 |
---|---|
列 |
列の名前。 この列にはチェック ボックスがあります。列のデータを生成するにはチェック ボックスをオンにし、列を空白のままにするにはチェック ボックスをオフにします。 null 許容の列または既定の制約が設定されている列のデータは生成する必要がありません。 [プロパティ] ウィンドウに、"Null を許容" プロパティおよび "既定値" プロパティが表示されます。これに基づいて、データを読み込む列を決定できます。 詳細については、「方法 : データを生成する列を指定する」を参照してください。 |
キー |
列が主キー列または外部キー列の場合は、鍵の絵が表示されます。この列は読み取り専用、参照専用です。 |
データ型 |
列の SQL データ型。この列は読み取り専用、参照専用です。 詳細については、Microsoft Web サイトの「データ型」(SQL Server 2000)、「データ型 (Transact-SQL)」(SQL Server 2005)、および「データ型(Transact-SQL)」を参照してください。 |
ジェネレータ |
この列のデータを生成するデータ ジェネレータの種類。 各 SQL データ型には既定のデータ ジェネレータがあり、データ生成計画を最初に作成した時点で、既定のジェネレータがこの列に表示されます。 データ ジェネレータを変更するには、列の下向き矢印をクリックし、別のデータ ジェネレータをクリックします。 |
ジェネレータ出力 |
このジェネレータの出力です。この列は、複数の出力値を生成する任意のデータ ジェネレータで使用します。 たとえば、データ バインド ジェネレータを使用する場合、SELECT クエリを指定して、データ ソースからデータを取得する必要があります。 SELECT クエリを指定すると、この列にはクエリが返すデータ列の一覧が格納されます。 列に読み込むデータを指定するには、下向き矢印をクリックし、適切なオプションをクリックします。 詳細については、このドキュメントで後述される「接続情報」セクションおよび「クエリの選択」セクションを参照してください。 この列は、カスタム データ ジェネレータでも使用できます。1 つのカスタム データ ジェネレータで複数の出力値が生成される場合があります。たとえば、2 つの異なる日付範囲があり、そのいずれかの日付範囲に属する日付をカスタム データ ジェネレータが生成する場合があります。その場合は、この列を使って、使用する出力を指定します。 |
列のデータ ジェネレータの指定
データ生成計画ウィンドウの列の詳細ペインで各列のジェネレータとジェネレータ出力を指定することで、どのようなデータが生成され、列に入力されるかを制御できます。
データ ジェネレータを割り当てる場合は、以下の点を考慮する必要があります。
すべての種類のデータ ジェネレータをすべての SQL データ型で使用できるわけではありません。 一覧に表示されるのは、列の SQL データ型に使用できるデータ ジェネレータのみです。
ID 列と外部キー列では、列の SQL データ型に関係なく、SQL 計算値データ ジェネレータと外部キー データ ジェネレータが使用されます。ID 列と外部キー列のデータ ジェネレータは変更できません。
詳細については、「標準データ ジェネレータの種類」および「[オプション] ([データベース ツール] - [データ ジェネレータ] - [既定のジェネレータ])」を参照してください。
データ ジェネレータのプロパティの指定
列のデータ ジェネレータの種類を指定した後は、そのデータ ジェネレータのプロパティを設定することにより、生成するデータの詳細を指定できます。 プロパティを設定するには、データ生成計画ウィンドウの列の詳細ペインをクリックし、[プロパティ] ウィンドウを開きます。 列情報、データベース制約、およびジェネレータという 3 つのプロパティのカテゴリを設定できます。 列情報プロパティとデータベース制約プロパティは読み取り専用であり、データ生成計画をカスタマイズするために使用できる各列についての情報を示します。 ジェネレータ プロパティは、通常、読み取り/書き込み可能です。ただし、一部のデータ ジェネレータは読み取り専用のプロパティが設定されている場合があります。
メモ : |
---|
[プロパティ] ウィンドウが項目別の場合、カテゴリが表示されます。[プロパティ] ウィンドウがアルファベット順の場合、カテゴリは表示されません。 [プロパティ] ウィンドウのツール バーにある [項目別] ボタンおよび [アルファベット順] ボタンをクリックして、2 つの表示を切り替えることができます。 |
列情報プロパティとデータベース制約プロパティ
次の表に、各列の列情報プロパティとデータベース制約プロパティを示します。
プロパティ |
詳細 |
---|---|
サイズ |
データベース列のサイズ (バイト単位)。 |
Null を許容 |
True または False。列で NULL 値が許可されるかどうかを示します。 |
CHECK 制約 |
列に CHECK 制約がない場合は空です。列に CHECK 制約がある場合は、その CHECK 制約の式を示します。
メモ :
列には複数の CHECK 制約がある場合があるので、このプロパティが空でない場合、このプロパティは文字列の配列になります。配列の各要素は、制約の 1 つを表す式の文字列です。
|
既定値 |
列に既定の制約がない場合は空です。列に既定の制約がある場合は、その既定値が示されます。 |
外部キー |
列に外部キー制約がない場合は空です。 列に外部キー制約がある場合は、外部キーの参照先のテーブルおよび列が示されます。 |
主キー |
True または False。列がテーブルの主キーの一部かどうかを示します。 |
一意 |
True または False。列が UNIQUE 制約の一部であるかどうかを示します。 |
ジェネレータ プロパティ
ジェネレータ プロパティを設定して、データの生成方法を制御します。 各列で使用できるプロパティは、その列に対して割り当てられているデータ ジェネレータにより異なります。すべてのデータ ジェネレータに、すべてのプロパティがあるわけではありません。たとえば、データ バインド ジェネレータには、データ ソースに対する接続文字列を指定するのに使用する "接続情報" プロパティがあります。その他のデータ ジェネレータには、このプロパティはありません。
次の表に、各列のジェネレータ プロパティを示します。
プロパティ |
詳細 |
データ ジェネレータの種類 |
既定値 |
---|---|---|---|
NULL の割合 |
列に生成される NULL 値のおおよその割合。 列で NULL 値が許可される場合のみ、このプロパティを変更できます。NULL 値を許可しない列では、このプロパティは 0 にする必要があります。値を 0 にすると、NULL 値は生成されません。 値を 100 にすると、NULL 値のみが生成されます。 |
SQL 計算値以外のすべてのデータ ジェネレータ。 |
0 |
シード |
ランダムなデータを生成するためのアルゴリズムに使用されるシード値。標準データ ジェネレータは確定的です。 同じシード値を使用すると、同じランダム データが再生成されます。 シード値を変更することにより、別の (ただし確定的な) ランダム データ セットを生成できます。 |
SQL 計算値以外のすべてのデータ ジェネレータ。 |
5 シード プロパティの既定値を変更するには、[オプション] ページを使用します。 詳細については、「[オプション] ([データベース ツール] - [データ ジェネレータ] - [全般])」を参照してください。 |
Unique |
このプロパティを true にすると、列に生成されるデータが一意になります。このプロパティは、数値型の増分プロパティと共に使用します。 |
SQL 計算値、正規表現、イメージ、データ バインド以外のすべてのデータ ジェネレータ。 |
列が UNIQUE 制約の一部の場合は True、それ以外の場合は False。 |
増分 |
"一意" プロパティが true の場合、"増分" の値が前の行に加算されて各行が算出されます。 "増分" プロパティに負の値を指定することもできます。 |
Decimal、Real、Float、Money、DateTime、および integer の各データ ジェネレータ。 |
既存の CHECK 制約が正常に解析できる場合、その CHECK 制約に基づきます。 smalldatetime: 1 分 datetime: 1 分 その他のすべての数値型: 1 |
ディストリビューション |
ランダムに生成されたデータが近似する統計分布曲線。 このプロパティは、"均一"、"正規"、"逆正規"、"指数"、および "逆指数" に設定できます。 |
Decimal、Money、DateTime、Real、Float、および integer の各データ ジェネレータ。 |
均一 |
最小 |
列に生成されるデータの最小値。 |
Decimal、Money、DateTime、Real、Float、および integer の各データ ジェネレータ。 |
既存の CHECK 制約が正常に解析できる場合、その CHECK 制約に基づきます。 smalldatetime: 1/1/1900 datetime: 1/1/1753 その他のすべての数値型: 0 |
最大 |
列に生成されるデータの最大値。 |
Decimal、Money、DateTime、Real、Float、および integer の各データ ジェネレータ。 |
既存の CHECK 制約が正常に解析できる場合、その CHECK 制約に基づきます。 smalldatetime: 6/6/2079 datetime: 12/31/9999 その他のすべての数値型: データ型または列定義で定義されている最大値。 |
ロケール |
ランダムな文字の生成で使用されるロケール。 使用できるロケールの一覧を表示するには、下向き矢印をクリックします。 このプロパティは、オペレーティング システムや Visual Studio のロケールではなく、データベース列の照合順序のロケールに基づきます。 |
String |
既定値です。 |
最小長 |
列に生成されるデータの最小の長さ。 |
String、Binary |
1 |
最大長 |
列に生成されるデータの最大の長さ。 OutOfMemory 例外が発生しないように、この値は適切な長さにする必要があります。 |
String、Binary、RegularExpression |
データ型または列定義で定義されている最大長。 4000 8000 |
式 |
データの生成で使用する正規表現。 指定したパターンに一致するデータが生成されます。 詳細については、「正規表現ジェネレータ」を参照してください。 |
RegularExpression |
[a-zA-Z0-9]* |
高さ |
列に生成されるイメージの高さ。 |
Image |
生成されたイメージが列に収まるように、列のサイズに基づいて計算されます。 64 |
幅 |
列に生成されるイメージの幅。 |
Image |
生成されたイメージが列に収まるように、列のサイズに基づいて計算されます。 64 |
接続情報 |
データ ソースに対する接続文字列。 接続文字列は、次の方法で指定できます。
このプロパティは、Visual Studio のサーバー エクスプローラに関連付けられています。サーバー エクスプローラで指定した接続文字列はこのプロパティに表示され、このプロパティで指定した接続文字列はサーバー エクスプローラに表示されます。 詳細については、「データ バインド ジェネレータ」を参照してください。 |
データ バインド ジェネレータ |
既定値はありません。 |
クエリの選択 |
データ ソースからデータを取得するために使用する SELECT クエリ。 SELECT ステートメントを指定すると、クエリが返した列の名前で [ジェネレータ出力] 列が更新されます。このクエリから返されたすべての列には、データ生成に有効な名前またはエイリアスがなければなりません。 その後、[ジェネレータ出力] 列に必要な列を指定する必要があります。 詳細については、このトピックの前半の [ジェネレータ出力] 列についての記述を参照してください。
注意 :
悪意のあるユーザーが、このプロパティに任意の Transact-SQL (T-SQL) コードを追加する可能性があります。 詳細については、「データ ジェネレータを使用してデータベースのテスト データを生成する」を参照してください。
|
データ バインド ジェネレータ |
既定値はありません。 |
次に行う作業
生成するデータの詳細を指定した後、データをプレビューおよび生成できます。 詳細については、「方法 : データ生成計画をプレビューする」および「方法 : データ生成計画を実行してデータを生成する」を参照してください。
関連するシナリオ
データ ジェネレータを使用してデータベースのテスト データを生成する
データベース単体テストを実行する前に、データベースにテスト データを挿入する必要がある場合があります。 データ ジェネレータを使用することで、開発者に本番データを公開することなく、現実的なテスト データを作成できます。カスタム データ ジェネレータで独自のテスト データを生成する
組み込みのデータ ジェネレータではサポートされない要件を満たすデータを生成する必要がある場合は、独自のデータ ジェネレータを作成できます。