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

Traduzione articoli Traduzione articoli
Identificativo articolo: 918480 - Visualizza i prodotti a cui si riferisce l?articolo.
Bug #: 403696 (SQLBUDT)
Espandi tutto | Chiudi tutto

In questa pagina

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

Proprietà

Identificativo articolo: 918480 - Ultima modifica: mercoledì 17 maggio 2006 - Revisione: 1.1
Le informazioni in questo articolo si applicano 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
Chiavi: 
kbmt kbexpertiseadvanced kbtshoot kbprb KB918480 KbMtit
Traduzione automatica articoli
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
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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