La parte di uno script che è definito in una vista indicizzata non viene generata quando si creano script oggetto SMO è correlato la vista indicizzata in SQL Server 2005

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 918480
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Bug #: 403696 (SQLBUDT)
Sintomi
Script di un oggetto di SQL Server Management Object (SMO) che è correlato a una vista indicizzata in Microsoft SQL Server 2005, la parte dello script dell'indice cluster che viene definito per la vista indicizzata quando non viene generato. Non è pertanto possibile eseguire lo script generato per creare oggetti che richiedono un indice cluster per essere specificato prima della visualizzazione.
Workaround
Per aggirare il problema, utilizzare uno dei metodi seguenti, a seconda di come script di SMO oggetto che è correlato a una vista indicizzata.

Chiamare il metodo di script dell'oggetto SMO

  1. Definire un oggetto ScriptingOptions .
  2. Impostare il valore della proprietà Indexes dell'oggetto ScriptingOptions su true.
  3. Invece di chiamare il metodo di script dell'oggetto SMO, chiamare il metodo di Script(ScriptingOptions) dell'oggetto SMO. Per effettuare questa operazione, passare l'oggetto ScriptingOptions il metodo di script .
Ad esempio, è possibile utilizzare codice simile a nell'esempio di codice riportato di seguito.

Microsoft Visual C#

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

Utilizzare l'oggetto script

  1. Impostare il valore del membro Options.Indexes dell'oggetto script su true.
  2. Per generare lo script, passare il riferimento all'oggetto SMO al metodo di script dell'oggetto di script .
Ad esempio, è possibile utilizzare codice simile a nell'esempio di codice riportato di seguito.

Visual C#

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
Nota La proprietà di Opzioni di un oggetto di script restituisce un oggetto di ScriptingOptions .

Utilizzare l'oggetto trasferimento

  1. Impostare il valore del membro dell'oggetto Transfer Options.Indexes su true .
  2. Per generare lo script, utilizzare il metodo di ScriptTransfer dell'oggetto Transfer .
Ad esempio, è possibile utilizzare codice simile a nell'esempio di codice riportato di seguito.

Visual C#

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
Nota La proprietà di Opzioni di un oggetto Transfer restituisce un oggetto di ScriptingOptions .
Status
Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a".
Riferimenti
Per ulteriori informazioni sulla classe ScriptingOptions , visitare il seguente sito Web MSDN (informazioni in lingua inglese):

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 918480 - Ultima revisione: 12/09/2015 05:37:27 - Revisione: 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 KbMtit
Feedback