Demonstra Passo a passo: Criando um gerador de dados personalizado para um teste de verificação
Você pode usar os geradores de dados padrão para preencher as colunas com dados no Visual Studio Premium ou Visual Studio Ultimate. Se a coluna que você deseja preencher tiver uma restrição de verificação definida, os dados com o qual você preencher a coluna devem satisfazer a restrição de verificação. Os geradores de dados padrão podem gerar os dados que satisfaçam muitas restrições de verificação. Por exemplo, se você tiver uma restrição check que requer que uma data esteja em um determinado intervalo, use o gerador de DateTime padrão e defina as propriedades Min e Max para satisfazer a restrição de verificação.
No entanto, os geradores de dados padrão não podem satisfazer todas as restrições de verificação. Por exemplo, se uma restrição de verificação requer que uma data é uma das duas faixas distintas, você não pode usar o gerador de DateTime padrão. Esta explicação passo a passo, você criará um gerador de dados personalizados que pode satisfazer tal uma restrição. O gerador de dois intervalos de aceita como entrada e gera uma data aleatória que está em um desses intervalos.
Esta explicação passo a passo, você executará as seguintes tarefas:
Criar uma classe que herda de Generator.
Crie propriedades de entrada para que o usuário pode especificar a data de dois intervalos.
Crie uma propriedade de saída para usar como a saída do gerador.
Substituir o OnInitialize método para propagar a Random objetos e tornar seu gerador determinista.
Substituir o OnGenerateNextValues método para gerar os dados.
Assine o gerador de um nome forte.
Pré-requisitos
Você precisa ter Visual Studio Premium ou Visual Studio Ultimate instalado para concluir esta explicação passo a passo.
Criar a classe de gerador de dados personalizados
Começar a criar o gerador de dados personalizados, criando uma biblioteca de classe.
Para criar a classe do gerador de dados personalizados
Em Visual Studio, crie um projeto de biblioteca de classe no idioma de sua escolha e o nome de GeneratorDateRanges.
No menu Project, escolha Add Reference.
Selecione o .NET guia.
No Nome do componente coluna, localize os seguintes componentes:
[Microsoft.Data.Schema]
[Microsoft.Data.Schema.Sql]
[Microsoft.Data.Schema.Tools]
Dica
Pressione e segure a tecla CTRL enquanto clica para selecionar vários componentes.
Clique em OK depois que você tiver selecionado todos os componentes necessários.
As referências selecionadas aparecerão sob o referências o nó do projeto no Solution Explorer.
(Opcional, Visual Basic apenas) em Solution Explorer, clique em Mostrar todos os arquivose expanda o referências o nó para verificar a nova referência.
Abra o arquivo Class1 e, em seguida, na parte superior do código janela, antes da declaração de classe, adicione as seguintes linhas de código:
Imports System.Data.SqlTypes Imports Microsoft.Data.Schema.Tools.DataGenerator Imports Microsoft.Data.Schema.Extensibility Imports Microsoft.Data.Schema Imports Microsoft.Data.Schema.Sql
using System.Data.SqlTypes; using Microsoft.Data.Schema.Tools.DataGenerator; using Microsoft.Data.Schema.Extensibility; using Microsoft.Data.Schema; using Microsoft.Data.Schema.Sql;
Renomeie a classe de Class1 para GeneratorDateRangese especifique que sua classe herda de Generator.
Aviso
Por padrão, o nome que você forneça sua classe é o nome que aparece na lista de gerador coluna o Detalhes da coluna janela. Você deve especificar um nome que não está em conflito com o nome de um gerador de padrão ou de outro gerador personalizado.
Public Class GeneratorDateRanges Inherits Generator End Class
public class GeneratorDateRanges: Generator { }
Adicionar o DatabaseSchemaProviderCompatibilityAttribute, conforme mostrado no exemplo a seguir:
<DatabaseSchemaProviderCompatibility(GetType(SqlDatabaseSchemaProvider))> _ Public Class GeneratorDateRanges Inherits Generator End Class
[DatabaseSchemaProviderCompatibility(typeof(SqlDatabaseSchemaProvider))] public class GeneratorDateRanges : Generator { }
Para obter mais informações sobre o atributo de extensão de compatibilidade, consulte Estender os recursos de banco de dados de Visual Studio.
No menu File, clique em Save All.
Adicionar as propriedades de entrada
Esse gerador de dados personalizados aceita dois intervalos de data como entrada. Para especificar a cada intervalo, o usuário Especifica o mínimo e a data máxima para cada um. Portanto, você deve criar quatro propriedades de entrada no total: dois mínimas datas e dois máximo.
Para adicionar as propriedades de entrada
Criar quatro variáveis de membro para armazenar o mínimo e máximo datas para a data de dois intervalos:
Dim range1MinValue As SqlDateTime Dim range1MaxValue As SqlDateTime Dim range2MinValue As SqlDateTime Dim range2MaxValue As SqlDateTime
SqlDateTime range1MinValue; SqlDateTime range1MaxValue; SqlDateTime range2MinValue; SqlDateTime range2MaxValue;
Criar quatro propriedades para definir o mínimo e máximo datas para a data de dois intervalos. As propriedades devem ter o InputAttribute para identificá-las como propriedades de entrada.
Observação Para especificar as propriedades de entrada para o gerador de dados na janela Propriedades, você deve fornecer um conversor de tipo que converte os valores de entrada de e para o SqlDateTime tipo. Para fazer isso, você adicionará um suporte SqlDateTimeConverter classe posteriormente nesta explicação passo a passo.
<Input(TypeConverter:=GetType(SqlDateTimeConverter))> _ Public Property Range1Min() as SqlDateTime <Input(TypeConverter:=GetType(SqlDateTimeConverter))> _ Public Property Range1Max() as SqlDateTime <Input(TypeConverter:=GetType(SqlDateTimeConverter))> _ Public Property Range2Min() as SqlDateTime <Input(TypeConverter:=GetType(SqlDateTimeConverter))> _ Public Property Range2Max() as SqlDateTime
[Input(TypeConverter = typeof(SqlDateTimeConverter))] public SqlDateTime Range1Min { set {range1MinValue = value;} get {return range1MinValue;} } [Input(TypeConverter = typeof(SqlDateTimeConverter))] public SqlDateTime Range1Max { set {range1MaxValue = value;} get {return range1MaxValue;} } [Input(TypeConverter = typeof(SqlDateTimeConverter))] public SqlDateTime Range2Min { set {range2MinValue = value;} get {return range2MinValue;} } [Input(TypeConverter = typeof(SqlDateTimeConverter))] public SqlDateTime Range2Max { set {range2MaxValue = value;} get {return range2MaxValue;} }
No menu File, clique em Save All.
Adição da propriedade de saída
Esse gerador de dados personalizados retorna uma data aleatória como a saída. Portanto, você deve criar uma propriedade de saída.
Para adicionar a propriedade de saída
Crie uma variável de membro para armazenar a data aleatória que é a saída:
Dim randomDateValue As SqlDateTime
SqlDateTime randomDateValue;
Crie uma propriedade para retornar a data aleatória como a saída. A propriedade deve ter o OutputAttribute para identificá-lo como uma propriedade de saída.
<Output()> _ Public ReadOnly Property RandomDate() As SqlDateTime Get Return randomDateValue End Get End Property
[Output] public SqlDateTime RandomDate { get {return randomDateValue;} }
No menu File, clique em Save All.
Substituindo o método OnInitialize
Quando você gera dados aleatórios, ele pode ser determinística ou não-determinística. Dados deterministas repete os mesmos dados sempre gerá-lo a partir do mesma propagação. Todos os geradores de dados tem um Seed propriedade que o usuário pode definir. Você pode substituir o OnInitialize método para propagar a Random objetos e tornar seu gerador determinista.
Para substituir o método OnInitialize
Crie duas variáveis de membro para gerar números aleatórios, conforme mostrado no exemplo a seguir. Uma variável gera uma data aleatória. A outra variável escolhe aleatoriamente entre os dois intervalos de data possível.
Dim random As Random Dim randomRange As Random
Random random; Random randomRange;
Substituir o OnInitialize método:
Protected Overrides Sub OnInitialize(ByVal initInfo As GeneratorInit) random = New Random(Me.Seed) 'deterministic randomRange = New Random(Me.Seed) 'deterministic 'random = New Random() 'non-deterministic 'randomRange = New Random() 'non-deterministic MyBase.OnInitialize(initInfo) End Sub
protected override void OnInitialize(GeneratorInit initInfo) { random = new Random(this.Seed); //deterministic randomRange = new Random(this.Seed); //deterministic //random = new Random(); //non-deterministic //randomRange = new Random(); //non-deterministic base.OnInitialize(initInfo); }
No menu File, clique em Save All.
Substituindo o método OnGenerateNextValues
Visual Studio Premiumchamadas de OnGenerateNextValues o método do gerador de criar os dados que ele necessidades. Você deve substituir esse método para fornecer a lógica que gera a data aleatória para a propriedade de saída.
Para substituir o método OnGenerateNextValues
Substituir o OnGenerateNextValues método, conforme mostrado no exemplo a seguir:
Protected Overrides Sub OnGenerateNextValues() Dim min As SqlDateTime Dim max As SqlDateTime 'Generate a random date from either range 1 or range 2. 'Randomly select either range 1 or range 2 by randomly 'generating an odd or an even random number. '------------------------------------------------------------ If randomRange.Next() Mod 2 = 0 Then 'check for odd or even min = range1MinValue max = range1MaxValue Else min = range2MinValue max = range2MaxValue End If 'The formula for creating a random number in a specific range is: 'start of range + (size of range * random number between 0 and 1) 'size of range Dim range As TimeSpan = max.Value - min.Value '(size of range * random number between 0 and 1) Dim randomNumber As TimeSpan = New TimeSpan(CLng(range.Ticks * random.NextDouble())) 'start of range + (size of range * random number between 0 and 1) randomDateValue = min + randomNumber End Sub
protected override void OnGenerateNextValues() { SqlDateTime min; SqlDateTime max; //Generate a random date from either range 1 or range 2. //Randomly select either range 1 or range 2 by randomly //generating an odd or an even random number. //------------------------------------------------------------ if (randomRange.Next() % 2 == 0) //check for odd or even { min = range1MinValue; max = range1MaxValue; } else { min = range2MinValue; max = range2MaxValue; } //The formula for creating a random number in a specific range is: //start of range + (size of range * random number between 0 and 1) //size of range TimeSpan range = max.Value - min.Value; //(size of range * random number between 0 and 1) TimeSpan randomNumber = new TimeSpan((long)(range.Ticks * random.NextDouble())); //start of range + (size of range * random number between 0 and 1) randomDateValue = min + randomNumber; }
No menu File, clique em Save All.
Definindo o conversor de tipo
Para especificar as propriedades de entrada para o gerador de dados na janela Propriedades, você deve fornecer um conversor de tipo que converte os valores de entrada de e para o SqlDateTime tipo.
Para criar a classe de conversor de tipo de SqlDateTime
No menu Project clique em Add Class.
O Add New Item caixa de diálogo aparece.
Em nome, digite SqlDateTimeConverter.
Na parte superior do código janela, antes da declaração de classe, adicione as seguintes linhas de código:
Imports System.ComponentModel Imports System.Data.SqlTypes Imports System.Globalization
using System.ComponentModel; using System.Data.SqlTypes; using System.Globalization;
Especificar que sua classe herda de TypeConverter:
Public Class SqlDateTimeConverter Inherits TypeConverter End Class
public class SqlDateTimeConverter: TypeConverter { }
Dentro da declaração de classe, adicione o construtor da classe. Se você estiver escrevendo a classe do conversor de tipo Visual Basic, vá para a etapa 6.
public SqlDateTimeConverter() { }
Após o construtor de classe, adicione um método que verifica se uma conversão específica é possível por esse conversor de tipo:
Public Overrides Function CanConvertFrom(ByVal context As ITypeDescriptorContext, ByVal sourceType As Type) As Boolean Dim result As Boolean result = False If (sourceType Is GetType(System.String)) Then result = True Else result = MyBase.CanConvertFrom(context, sourceType) End If Return result End Function Public Overrides Function CanConvertTo(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal destinationType As System.Type) As Boolean If (destinationType Is GetType(System.String)) Then Return True End If Return MyBase.CanConvertTo(context, destinationType) End Function
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { bool result = false; if (sourceType == typeof(string)) { result = true; } else { result = base.CanConvertFrom(context, sourceType); } return result; } public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { if (destinationType == typeof(string)) { return true; } return base.CanConvertTo(context, destinationType); }
Finalmente, adicione os métodos de conversor:
Public Overrides Function ConvertFrom(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal culture As System.Globalization.CultureInfo, ByVal value As Object) As Object Dim dateTimeString As String dateTimeString = value.ToString If (dateTimeString.Length > 0) Then Dim dateTime As Date dateTime = Date.Parse(dateTimeString, culture) Return New SqlDateTime(dateTime) End If Return MyBase.ConvertFrom(context, culture, value) End Function Public Overrides Function ConvertTo(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal culture As System.Globalization.CultureInfo, ByVal value As Object, ByVal destinationType As System.Type) As Object If (destinationType Is GetType(System.String)) Then Dim dateTime As Date dateTime = CType(value, SqlDateTime).Value Return dateTime.ToString(culture) End If Return MyBase.ConvertTo(context, culture, value, destinationType) End Function
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { string dateTimeString = value as string; if (dateTimeString != null) { DateTime dateTime = DateTime.Parse(dateTimeString, culture); return new SqlDateTime(dateTime); } return base.ConvertFrom(context, culture, value); } public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { DateTime dateTime = ((SqlDateTime)value).Value; return dateTime.ToString(culture); } return base.ConvertTo(context, culture, value, destinationType); }
No menu File, clique em Save All.
O gerador de assinatura.
Todos os geradores de dados personalizados devem ser assinados com um nome forte, antes que eles são registrados.
Para assinar o gerador de um nome forte
Sobre o projeto menu, clique em Propriedades de GeneratorDateRanges para abrir as propriedades do projeto.
Sobre o assinatura guia, selecione o Sign the assembly caixa de seleção.
No Choose a strong name key file , clique em < New... >.
No nome do arquivo de chave caixa, digite GeneratorDateRangesKey, digite e confirme uma senha e, em seguida, clique em OK.
Quando você constrói sua solução, o arquivo de chave é usado para assinar o assembly.
No menu File, clique em Save All.
Sobre o Build menu, clique em Build Solution.
O gerador de dados foi criado. Em seguida, você deve registrá-lo em seu computador para que você pode usá-lo em planos de geração de dados.
Registrando o gerador
Depois que seu assembly é assinado e compilado, a próxima etapa é coletar as informações de assembly geradas no projeto, incluindo a versão, a cultura e PublicKeyToken, para facilitar a registrar o assembly do gerador.
Para coletar informações de assembly
No Exibir menu, clique em Other Windowse em seguida, clique em Janela de comando para abrir o comando janela.
No comando janela, digite o seguinte código. Para FilePath, substitua o caminho e o nome do arquivo. dll de compilado. Inclua as aspas ao redor do caminho e nome de arquivo.
Observação Por padrão, o caminho do seu arquivo compilado. dll é SampleGenerator\bin\Debug.
? System.Reflection.Assembly.LoadFrom("FilePath").FullName
? System.Reflection.Assembly.LoadFrom(@"FilePath").FullName
Pressione Enter. A linha deverá ser semelhante a seguinte com seu PublicKeyToken específico:
" GeneratorDateRanges, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nnnnnnnnnnnnnnnn"
Notificar ou copiar essas informações de assembly; ele será usado no próximo procedimento.
Em seguida, você criará um arquivo XML usando as informações de assembly reunidas no procedimento anterior.
Para criar o arquivo XML
Em Solution Explorer, selecione o projeto GeneratorDateRanges.
No menu Project, selecione Add New Item.
No modelos de painel, localize e selecione o Arquivo XML item.
No nome caixa de texto, digite GeneratorDateRanges.Extensions.xml e clique no Add botão.
O arquivo de GeneratorDateRanges.Extensions.xml é adicionado ao projeto no Solution Explorer.
Observação Você deve usar o nome da sua dll (no caso, "generatordateranges" seguido por ".Extensions.xml") para o assembly registrar corretamente.
Abra o arquivo GeneratorDateRanges.Extensions.xml e atualizá-lo para coincidir com o seguinte XML. Substitua a versão do assembly, cultura e PublicKeyToken que você recuperou no procedimento anterior.
Observação O tipo de extensão deve usar o nome totalmente qualificado da classe. Nesse caso: type="GeneratorDateRanges.GeneratorDateRanges de extensão".
<?xml version="1.0" encoding="utf-8"?> <extensions assembly="" version="1" xmlns="urn:Microsoft.Data.Schema.Extensions" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:Microsoft.Data.Schema.Extensions Microsoft.Data.Schema.Extensions.xsd"> <extension type="GeneratorDateRanges.GeneratorDateRanges" assembly=" GeneratorDateRanges, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nnnnnnnnnnnnnnnn" enabled="true"/> </extensions>
No menu File, clique em Save All.
Em seguida, você irá copiar o assembly e o arquivo XML para o diretório de extensões. Quando Visual Studio Premium é iniciado, ele identificará as extensões na % Program Files %diretório de 10.0\VSTSDB\Extensions de Visual Studio \Microsoft e subdiretórios e registrá-los para usam na sessão.
Para copiar e registrar o assembly e o arquivo XML para o diretório de extensões
Crie uma pasta chamada CustomGenerators no % Program Files %diretório do \Microsoft Visual Studio 10.0\VSTSDB\Extensions\.
Copiar o arquivo de montagem de GeneratorDateRanges.dll a PastaDoProjeto\GeneratorDateRanges\GeneratorDateRanges\bin\Debug\ o diretório para o % Program Files %diretório 10.0\VSTSDB\Extensions\CustomGenerators do \Microsoft Visual Studio que você criou.
Copiar o arquivo GeneratorDateRanges.Extensions.xml do PastaDoProjeto\GeneratorDateRanges\GeneratorDateRanges\ o diretório para o % Program Files %diretório 10.0\VSTSDB\Extensions\CustomGenerators do \Microsoft Visual Studio que você criou.
Observação Uma prática recomendada é colocar seus assemblies de extensão em uma pasta do % Program Files %diretório do \Microsoft Visual Studio 10.0\VSTSDB\Extensions. Essa estratégia irá ajudá-lo a identificar quais extensões foram incluídas com o produto e quais são suas criações personalizadas. Você também deve considerar a organização de suas extensões em pastas específicas da categoria.
Teste o gerador de intervalos de datas
Agora que você criou o gerador de dados DateRanges, você deve iniciar uma nova instância do Visual Studio. Quando Visual Studio é iniciado, ele registrará o assembly de GeneratorDateRanges que você adicionou ao % Program Files %diretório do \Microsoft Visual Studio 10.0\VSTSDB\Extensions\CustomGenerators.
Em seguida, você criará um o projeto de banco de dados no qual você pode verificar que o gerador de dados de DateRanges está funcionando corretamente.
Para criar o projeto de banco de dados
Iniciar uma nova instância de Visual Studio, que irá reconhecer o conjunto de GeneratorDateRanges.dll e registrar o proprietário.
Sobre o arquivo , aponte para novae clique em projeto.
A caixa de diálogo New Project será exibida.
Na lista de Modelos instalados, expanda banco de dadose clique em SQL Server.
Em modelos de, clique em Assistente de 2008 do SQL Server.
Em nome, digite SampleGeneratorDB.
Observação Se você já concluiu todas as etapas Demonstra Passo a passo: Criando um gerador de dados personalizados, você já criou o projeto SampleGeneratorDB, e você pode ir para o próximo procedimento, para adicionar uma tabela para o projeto de banco de dados.
Selecione o Create directory for solution caixa de seleção.
Aceite os valores padrão para local, Nome da solução, e Add to Source Controle em seguida, clique em OK.
Clique em Finish. Quando o assistente for concluído, clique em Concluir novamente.
O novo projeto de banco de dados, SampleGeneratorDB, aparece na Solution Explorer.
Sobre o Exibir menu, clique em Visualização do esquema de banco de dados.
Modo de exibição do esquema será exibido se ela já não era visível.
Em seguida, você irá adicionar uma tabela simples para o projeto, com uma única coluna com um tipo de SQL de DateRange.
Para adicionar uma tabela para o projeto de banco de dados
Em Visualização Esquema, expandir o SampleGeneratorDB nó, expanda o esquemas nó, expanda o dbo nó e clique o tabelas nó.
No menu Project, clique em Add New Item.
Observação Você também pode direito no projeto SampleGeneratorDB na Visualização Esquema, aponte para Adde clique em tabela.
Em modelos de, clique em tabela.
Observação No categorias lista, você pode clicar em tabelas e modos de exibição para encontrar mais facilmente o modelo para uma tabela.
Em nome, tipo TableDates como o nome que você deseja dar a nova tabela.
Clique em Add para adicionar a tabela ao seu projeto de banco de dados.
Solution Explorer mostra o novo arquivo para a tabela em seu projeto de banco de dados. Modo de exibição do esquema mostra o novo objeto de tabela. O Transact-SQL editor aparece e exibe a definição para sua nova tabela.
No Transact-SQL editor, modifique a definição de tabela para coincidir com o exemplo a seguir:
CREATE TABLE [dbo].[TableDates] ( dates DateTime )
Sobre o arquivo menu, clique em Salvar TableDates.table.sql.
Com a tabela no lugar, agora você irá adicionar uma restrição de verificação para verificar se os intervalos de data usados são válidos.
Observação |
---|
Você digitará os intervalos de datas correspondente para valores de propriedade do gerador personalizado DateRanges dados em outro procedimento. Para obter mais informações, consulte Criando e configurando o plano de geração de dados. |
Para adicionar uma restrição de verificação para a tabela
Em Visualização Esquema, expanda o tabelas nó e clique o TableDates tabela.
No menu Project, clique em Add New Item.
Em modelos de, clique em Restrição Check.
Observação Você pode também direito a tabela de datas em Visualização Esquema, aponte para Adde clique em Restrição Check.
Em nome, digite CheckConstraintDateRanges como o nome que você deseja dar a nova restrição.
Clique em Add para adicionar a restrição de verificação ao seu projeto de banco de dados.
Solution Explorer mostra o novo arquivo para a restrição de verificação em seu projeto de banco de dados. Modo de exibição do esquema mostra o novo objeto de restrição de verificação. O Transact-SQL editor aparece e exibe a definição para sua nova restrição check.
No Transact-SQL editor, modifique a restrição de verificação para coincidir com o exemplo a seguir:
ALTER TABLE [dbo].[TableDates] ADD CONSTRAINT [CheckConstraintDateRanges] CHECK ((dates BETWEEN '1/1/1800' AND '1/1/1900')OR(dates BETWEEN '1/1/1979' AND '12/31/2008'))
Sobre o arquivo menu, clique em Salvar Dates.CheckConstraintDateRanges.chkconst.sql.
Observação Se você já concluiu todas as etapas Demonstra Passo a passo: Criando um gerador de dados personalizados, você pode ir para a seção Criando e configurando o plano de geração de dados.
Com a restrição de verificação e a tabela no lugar, agora você pode configurar o banco de dados para implantação.
Para definir as configurações de implantação do projeto
Em Solution Explorer, clique em SampleGeneratorDB (o projeto, não é a solução).
Sobre o projeto menu, clique em Propriedades de SampleGeneratorDB.
Aparece a janela de propriedades do projeto.
Observação Você também pode direito SampleGeneratorDB em Solution Explorer e clique em Propriedades.
Clique o Deploy guia.
Em ação implantar, clique em criar um script de implantação (sql) e implantar banco de dados.
Clique o Editar o botão para especificar a conexão de destino.
Especifique as informações para se conectar ao servidor de banco de dados que você deseja implantar o banco de dados SampleGeneratorDB.
Em Selecione ou digite um nome de banco de dados, digite SampleGeneratorDB.
Clique em OK.
Conexão de destino é preenchida com a seqüência de conexão. Observe que o Nome do banco de dados de destino for definido como SampleGeneratorDB.
Aceite os valores padrão para as outras opções.
Sobre o arquivo menu, clique em Salvar itens selecionados.
As configurações de compilação do projeto são salvas.
Em seguida, você criará seu projeto de banco de dados.
Para construir o projeto de banco de dados
Sobre o Build menu, clique em Build Solution.
Compilações de seu projeto de banco de dados. Se for bem-sucedido, a mensagem "compilação com êxito" aparece na barra de status e os resultados são exibidos na compilação do saída janela.
Em seguida, você implantará o seu projeto de banco de dados.
Para implantar o projeto de banco de dados para o servidor de banco de dados
Em Solution Explorer, clique em SampleGeneratorDB (o projeto, não é a solução).
Sobre o Build menu, clique em Implantar SampleGeneratorDB.
Seu projeto de banco de dados é implantado usando a conexão que você especificou na configuração de compilação. Se for bem-sucedido, a mensagem "implantação bem-sucedido" aparece no status da barra e de saída janela.
Criando e configurando o plano de geração de dados
Em seguida, você criará o plano de geração de dados. O plano de geração de dados contém as informações sobre quais tabelas e colunas que você deseja preencher com dados. Para obter mais informações, consulte Como: Criar planos de geração de dados.
Para criar e configurar o plano de geração de dados
Em Solution Explorer, selecione o Planos de geração de dados nó.
No menu Project, clique em Add New Item.
No categorias painel, clique em O plano de geração de dados.
No modelos de painel, clique em O plano de geração de dados.
No nome caixa de texto, digite SampleGenerator.dgen.
Clique em Adicionar.
O plano de geração de dados é criado. Plano de geração de dados e o Visualização de geração de dados janela exibida. A janela de plano de geração de dados é dividida horizontalmente em dois painéis. O painel superior lista as tabelas que são definidas no esquema de projeto de banco de dados — neste caso, o dbo.Tabela TableDates. O painel inferior exibe os detalhes da coluna da tabela que está realçado no painel superior — neste caso, a coluna de endereço.
Observação Se o Visualização de geração de dados janela não estiver aberta, você poderá abri-lo abrindo a dados menu, apontando para O gerador de dadose, em seguida, clicando em Geração de dados da visualização. Por padrão, o Visualização de geração de dados janela é encaixada e com guias na parte inferior da janela de plano de geração de dados. Para expandir o seu modo de exibição, clique na janela e, em seguida, clique em Documento com guias sobre o janela menu. Você pode também com o botão direito na barra de título e, em seguida, clique em Dock como documento com guias.
No criador de SampleGenerator.dgen, verifique se a dbo.TableDates tabela e o datas coluna ambos são verificados.
Na tabela, altere o valor em linhas para inserir a 500.
No designer de SampleGenerator.dgen, selecione o datas coluna e clique o gerador lista suspensa para selecionar o GeneratorDateRanges.
Com a coluna de datas selecionada, na janela Propriedades, tipo de valores para a data de duas entradas de intervalo:
Range1Max 31/12/2008 12:00:00 AM
Range1Min 1/1/1979 12:00:00 AM
Range2Max 1/1/1900 12:00:00 AM
Range2Min 1/1/1800 12:00 AM
O gerador de endereços personalizada agora está configurado corretamente.
No menu File, clique em Save All.
Executando o plano de geração de dados para gerar dados de intervalos de datas
Finalmente, você irá executar o plano de geração de dados e ver seu gerador de dados de intervalos de data personalizado em ação.
Para executar o plano para gerar dados
Em Solution Explorer, clique em SampleGenerator.dgen.
Observação O plano de geração de dados deve estar aberto. Se o plano não estiver aberto, abra-o pela primeira vez.
Sobre o dados , aponte para Gerador de dadose em seguida, clique em Gerar dados.
O Connect to Database caixa de diálogo aparece.
No As informações de conexão de geração de dados lista, clique o SampleGeneratorDB banco de dados e, em seguida, clique em OK.
Clique em Sim quando for solicitado para limpar o conteúdo das tabelas antes de inserir novas linhas.
Os dados são gerados. Na janela de preenchimento, a coluna de status é atualizada com o status da geração de dados. A barra de status resume a geração de dados para todas as tabelas.
(Opcional) Use uma ferramenta diferente para fazer logon no banco de dados. Você pode usar o Transact-SQL que é fornecido no editor de Visual Studio Premium para esta etapa. Para obter mais informações, consulte edição de Scripts de banco de dados e objetos com o Editor do Transact-SQL no site da Microsoft. Exiba os novos dados, executando a consulta a seguir:
use SampleGeneratorDB select * from dbo.TableDates
O resultados guia deve exibir as datas de 500 resultantes.
(Opcional) Na janela Properties, altere o valor de Range1Max para 31/12/3000 12:00:00 AM e execute o gerador de dados novamente, repetindo as etapas de 2 a 5.
No Error List janela, você verá um erro que é gerado devido a restrição de verificação, sendo violada, que é causada por um intervalo de datas, que está sendo alterado fora do intervalo permitido.
Consulte também
Tarefas
Demonstra Passo a passo: Criando um gerador de dados personalizados
Como: Registrar e gerenciar extensões de recurso
Referência
Microsoft.Data.Schema.Tools.DataGenerator
Conceitos
Gerar dados de teste especializado com um gerador de dados personalizados
Uma visão geral da extensibilidade do gerador de dados
Especifique detalhes da geração de dados para uma coluna
Outros recursos
Extensões de recurso de solução de problemas
Histórico de alterações
Date |
History |
Motivo |
---|---|---|
Dezembro de 2010 |
Corrigido o código de erro aos comentários dos clientes de endereço. |
Comentários do cliente. |