列へのデータ生成の詳細の指定
Visual Studio Premium でデータを生成するには、データ生成計画を作成して実行する必要があります。 データ生成計画には、データの設定対象のテーブルと列の情報が含まれています。 計画を作成したら、それらの列にデータを設定する方法の詳細を指定できます。 詳細については、「データ ジェネレーターを使用したデータベースのテスト データの生成」および「方法 : データ生成計画を作成する」を参照してください。
データ生成計画の各部分
列の詳細ペインと [データ生成プレビュー] ウィンドウを含む [データ生成計画] ウィンドウを次の図に示します。
[データ生成計画] ウィンドウ
一般的なタスク
次の表に、このシナリオをサポートする一般的なタスクの説明と、それらのタスクを正常に完了する方法の詳細へのリンクを示します。
一般的なタスク |
関連する参照先 |
---|---|
実習を行う: 機能紹介のチュートリアルを実施することで、単純なデータ生成計画の作成方法と実行方法を理解することができます。 |
|
列の詳細を表示する: データ生成計画に含めるテーブルごとに、そのテーブル内の列の現在の詳細を表示できます。 データを生成するときに、含める列を指定できます。 |
[列の詳細] の表示 |
各列に対してデータ ジェネレーターを指定する: それぞれの列には、データ ジェネレーターを関連付ける必要があります。 指定できるのは、列の SQL データ型をサポートするデータ ジェネレーターのみです。 |
列に対するデータ ジェネレーターの指定 |
指定したデータ ジェネレーターのプロパティを指定する: プロパティを指定することで、それぞれの列に対するデータ生成の詳細を構成できます。 範囲または配分によって値に制約を設定することも、データ生成に必要な詳細を提供することもできます。 そのような詳細には、データ バインド ジェネレーターに対するソース接続文字列などがあります。 |
データ ジェネレーターのプロパティの指定 |
SQL データ型に対する既定のデータ ジェネレーターを変更する: それぞれの SQL データ型には、既定のデータ ジェネレーターが関連付けられています。 たとえば、Int16 型の列は、既定で SmallInt データ ジェネレーターを使用します。 それぞれの SQL データ型に対する既定のジェネレーターを表示および変更できます。 |
|
データ バインド ジェネレーターを使用して Excel スプレッドシートのデータからデータを生成する: Excel スプレッドシートのテーブルからデータを生成するようにデータ バインド ジェネレーターを構成できます。 この方法は、たとえば、参照テーブルにデータを設定するために使用できます。 |
[列の詳細] の表示
データ生成計画内のテーブルを強調表示すると、[列の詳細] ペインにそのテーブル内の列が表示されます。 ペインには、それぞれの列ごとに、データ生成にその列が含められるかどうか、その列の SQL データ型、およびその列に割り当てられているデータ ジェネレーターが表示されます。 列に対するチェック ボックスをオンまたはオフにすることで、データの生成時にその列を含めるか、除外するかを指定できます。
それぞれの列の詳細について、次の表で説明します。
列名 |
詳細 |
---|---|
列 |
列の名前。 この列にはチェック ボックスがあり、それをオンにするとその列のデータが生成され、オフにするとその列が空のままになります。 Null 値が許容されている列、または既定の制約がある列には、データを生成する必要はありません。 [プロパティ] ウィンドウには、[Null を許容] プロパティおよび [既定値] プロパティが表示されます。これらを使用して、データを設定する列を決定できます。 詳細については、「方法 : データを生成する列を指定する」を参照してください。 |
キー |
列が主キー列または外部キー列の場合、鍵の絵。 この列は読み取り専用、参照専用です。 |
データ型 |
列の SQL データ型。 この列は読み取り専用、参照専用です。 詳細については、Microsoft Web サイト「データ型 (SQL Server 2005)」および「データ型 (Transact-SQL)」を参照してください。 |
ジェネレーター |
この列に対してデータを生成するデータ ジェネレーターの種類。 各 SQL データ型には既定のデータ ジェネレーターがあり、それらは、データ生成計画を最初に作成した時点でこの列に表示されます。 データ ジェネレーターを変更するには、下向きの矢印をクリックし、別のデータ ジェネレーターをクリックします。 |
ジェネレーター出力 |
このジェネレーターの出力。 この列は、複数の出力値を生成する任意のデータ ジェネレーターで使用します。 たとえば、データ バインド ジェネレーターを使用する場合、SELECT クエリを指定して、データ ソースからデータを取得する必要があります。 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 シード プロパティの既定値を変更するには、[オプション] ページを使用します。 詳細については、「[オプション] ([データベース ツール] - [データ ジェネレーター] - [全般])」を参照してください。 |
一意 |
このプロパティを 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 コードが追加される可能性があります。詳細については、「データ ジェネレーターを使用したデータベースのテスト データの生成」を参照してください。
|
データ バインド ジェネレーター |
既定値はありません。 |
次の手順
生成するデータの詳細を指定した後、データをプレビューおよび生成できます。 詳細については、「方法 : データ生成計画をプレビューする」および「方法 : データ生成計画を実行してデータを生成する」を参照してください。
関連するシナリオ
データ ジェネレーターを使用したデータベースのテスト データの生成
データベース単体テストを実行する前に、データベースにテスト データを挿入することが必要な場合があります。 データ ジェネレーターを使用すると、開発者に本番データを開示せずに現実的なテスト データを作成できます。カスタム データ ジェネレーターを使用した特殊なテスト データの生成
組み込みのデータ ジェネレーターでサポートされない要件を満たすデータを生成する必要がある場合は、独自のデータ ジェネレーターを作成できます。