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

Traduções deste artigo Traduções deste artigo
ID do artigo: 918480 - Exibir os produtos aos quais esse artigo se aplica.
Bug #: 403696 (SQLBUDT)
Expandir tudo | Recolher tudo

Neste artigo

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 String
For 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 String
For 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 String
For 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):
http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.scriptingoptions.aspx

Propriedades

ID do artigo: 918480 - Última revisão: quarta-feira, 17 de maio de 2006 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
Palavras-chave: 
kbmt kbexpertiseadvanced kbtshoot kbprb KB918480 KbMtpt
Tradução automática
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

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com