Parte de um script que é definido em um modo de exibição indexado não é gerado quando o script de um objeto do SMO que está relacionado com o modo de exibição indexado no SQL Server 2005

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 918480
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Bug #: 403696 (SQLBUDT)
Sintomas
Quando o script um objeto do SMO (SQL Server Management Object) que está relacionado a um modo de exibição indexado no SQL Server 2005, a parte do script do índice em cluster que é definido no modo de exibição indexado não é gerado. Portanto, você não pode executar o script gerado para criar objetos que requerem um índice de cluster seja especificado pela primeira vez no modo de exibição.
Como Contornar
Para contornar este problema, use um dos seguintes métodos, dependendo de como script o SMO objeto que está relacionada a um modo de exibição indexado.

Chame o método script de objeto SMO

  1. Defina um objeto ScriptingOptions .
  2. Defina o valor da propriedade índices do objeto ScriptingOptions como True.
  3. Em vez de chamar o método de script de objeto SMO, chame o método Script(ScriptingOptions) do objeto SMO. Para fazer isso, passe o objeto ScriptingOptions para o método de script .
Por exemplo, use código semelhante o exemplo de código a seguir.

Microsoft Visual translation from VPE for Csharp

Server srv = new Server(@".\MySQLServer");Database db = srv.Databases["MyDB"];View vw = db.Views["MyView"];//Define the ScriptingOptions object.ScriptingOptions sco = new ScriptingOptions();//Set the value of the Indexes property.sco.Indexes = true;//Specify the values of the other members of the sco object.System.Collections.Specialized.StringCollection script = null;//Pass the ScriptingOptions object.script = vw.Script(sco);foreach (string str in script){    Console.WriteLine(str);    Console.WriteLine("go");}

Microsoft Visual Basic .NET

Dim srv As Server = New Server(".\MySQLServer")Dim db As Database = srv.Databases("MyDB")Dim vw As View = db.Views("MyView")'Define the ScriptingOptions object.Dim sco As ScriptingOptions = New ScriptingOptions()'Set the value of the Indexes property.sco.Indexes = True'Specify the values of the other members of the sco object.'Pass the ScriptingOptions object.Dim script As System.Collections.Specialized.StringCollection = vw.Script(sco)Dim str As StringFor Each str In script    Console.WriteLine(str)    Console.WriteLine("go")Next str

Use o objeto criador de scripts

  1. Defina o valor do membro Options.Indexes do objeto criador de scripts como True.
  2. Para gerar o script, passe a referência de objeto SMO para o método do objeto criador de scripts do script .
Por exemplo, use código semelhante o exemplo de código a seguir.

Translation from VPE for Csharp Visual

Server srv = new Server(@".\MySQLServer");Database db = srv.Databases["MyDB"];View vw = db.Views["MyView"];Scripter scr = new Scripter();scr.Server = srv;//Set the value of the Options.Indexes member.scr.Options.Indexes = true;//Specify the value of the other members of the scr.Options property.SqlSmoObject[] objs = new SqlSmoObject[1];objs[0] = vw;System.Collections.Specialized.StringCollection script = null;//Pass the SMO object reference to the Script method.script = scr.Script(objs);foreach (string str in script){    Console.WriteLine(str);    Console.WriteLine("go");}

Visual Basic .NET

Dim srv As Server = New Server(".\MySQLServer")Dim db As Database = srv.Databases("MyDB")Dim vw As View = db.Views("MyView")Dim scr As Scripter = New Scripter()scr.Server = srv'Set the value of the Options.Indexes member.scr.Options.Indexes = True'Specify the value of the other members of the scr.Options object.Dim objs As SqlSmoObject() = New SqlSmoObject() {vw}'Pass the ScriptingOptions object.Dim script As System.Collections.Specialized.StringCollection = scr.Script(objs)Dim str As StringFor Each str In script    Console.WriteLine(str)    Console.WriteLine("go")Next str
Observação A propriedade de Opções de um objeto do criador de scripts retorna um objeto ScriptingOptions .

Usar o objeto de transferência

  1. Defina o valor do membro do objeto transferência Options.Indexes como true .
  2. Para gerar o script, use o método ScriptTransfer do objeto de transferência .
Por exemplo, use código semelhante o exemplo de código a seguir.

Translation from VPE for Csharp Visual

Server srv = new Server(@".\MySQLServer");Database db = srv.Databases["MyDB"];Transfer trans = new Transfer(db);//Set the value of the Options.Indexes member.trans.Options.Indexes = true;//Specify the value of the other members of the trans.Options property.System.Collections.Specialized.StringCollection script = null;//Use the ScriptTransfer method of the Transfer object to generate the script.script = trans.ScriptTransfer();foreach (string str in script){    Console.WriteLine(str);    Console.WriteLine("go");}

Visual Basic .NET

Dim srv As Server = New Server(".\MySQLServer")Dim db As Database = srv.Databases("MyDB")Dim trans As Transfer = New Transfer(db)'Set the value of the Options.Indexes member.trans.Options.Indexes = True'Specify the value of the other members of the trans.Options property.'Use the ScriptTransfer method of the Transfer object to generate the script.Dim script As System.Collections.Specialized.StringCollection = trans.ScriptTransfer()Dim str As StringFor Each str In script    Console.WriteLine(str)    Console.WriteLine("go")Next str
Observação A propriedade de Opções de um objeto de transferência retorna um objeto ScriptingOptions .
Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".
Referências
Para obter mais informações sobre a classe ScriptingOptions , visite o seguinte site da Web Microsoft Developer Network (MSDN):

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 918480 - Última Revisão: 12/09/2015 05:37:30 - Revisão: 1.1

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition

  • kbnosurvey kbarchive kbmt kbexpertiseadvanced kbtshoot kbprb KB918480 KbMtpt
Comentários