Der Teil eines Skripts, das auf eine indizierte Sicht definiert ist wird nicht generiert, wenn Sie ein Skript ein SMO-Objekt erstellen, die sich auf die indizierte Sicht in SQL Server 2005 beziehen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 918480 - Produkte anzeigen, auf die sich dieser Artikel bezieht
# Fehler: 403696 (SQLBUDT)
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Skript ein Zusammenhang mit einer indizierten Ansicht in Microsoft SQL Server 2005, die Teil des Skripts des gruppierten Indexes, die auf die indizierte Sicht definiert ist SQL Server Management Object (SMO)-Objekt wird nicht generiert. Deshalb können nicht Sie ausführen, das generierte Skript Objekte zu erstellen, die einen gruppierten Index in der Ansicht zuerst angegeben werden müssen.

Abhilfe

Um dieses Problem zu umgehen, verwenden Sie eine der folgenden Methoden an, je nachdem, wie Skripts die SMO-Objekt ist mit einer indizierten Sicht verknüpft.

Rufen Sie die Script-Methode von SMO-Objekt

  1. Definieren Sie eine ScriptingOptions -Objekt.
  2. Eingestellt der Indexes -Eigenschaft des ScriptingOptions -Objekts auf True.
  3. Rufen Sie anstelle eines Aufrufs die Script -Methode des SMO-Objekt, die Script(ScriptingOptions) -Methode des Objekts SMO. Dazu übergeben Sie das ScriptingOptions -Objekt an die Methode Skript .
Beispielsweise verwenden Sie Code, der im folgenden Codebeispiel ähnelt.

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");
}

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

Verwenden Sie das Objekt scripter

  1. Festlegen der die Options.Indexes Member des Objekts Scripter Wert auf True.
  2. Um das Skript zu generieren, übergeben Sie den Objektverweis SMO die Script -Methode des Objekts Scripter .
Beispielsweise verwenden Sie Code, der im folgenden Codebeispiel ähnelt.

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
Hinweis: Die Optionen -Eigenschaft eines Scripter -Objekts gibt ein ScriptingOptions -Objekt zurück.

Verwenden Sie das Transfer-Objekt

  1. Eingestellt des Members Options.Indexes des Transfer -Objekts auf true .
  2. Verwenden Sie die ScriptTransfer -Methode des Transfer -Objekts, um das Skript zu generieren.
Beispielsweise verwenden Sie Code, der im folgenden Codebeispiel ähnelt.

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
Hinweis: Die Optionen -Eigenschaft eines Transfer -Objekts gibt ein ScriptingOptions -Objekt zurück.

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind.

Informationsquellen

Weitere Informationen über die ScriptingOptions -Klasse die folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.scriptingoptions.aspx

Eigenschaften

Artikel-ID: 918480 - Geändert am: Mittwoch, 17. Mai 2006 - Version: 1.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
Keywords: 
kbmt kbexpertiseadvanced kbtshoot kbprb KB918480 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 918480
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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